{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![open.svg](images/open.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 典型的逻辑回归概率分布曲线\n",
    "\n",
    "![stock_prediction_wo_normalize](images/stock_prediction_wo_normalize.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 典型的逻辑回归概率分布曲线\n",
    "\n",
    "![unrolled_RNN](images/unrolled_RNN.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基于t时刻及之前数据预测t+1时刻结果（滑动窗口预测）\n",
    "\n",
    "![sliding_window_time_series.svg](images/sliding_window_time_series.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# train LSTM on five years of Google \n",
    "# Supervised Deep Learning\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "\n",
    "# Importing the training set\n",
    "training_set_ori = pd.read_csv(\"zgpa_train.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2016-01-04</td>\n",
       "      <td>30.57</td>\n",
       "      <td>30.57</td>\n",
       "      <td>28.63</td>\n",
       "      <td>28.78</td>\n",
       "      <td>70997200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2016-01-05</td>\n",
       "      <td>28.41</td>\n",
       "      <td>29.54</td>\n",
       "      <td>28.23</td>\n",
       "      <td>29.23</td>\n",
       "      <td>87498504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2016-01-06</td>\n",
       "      <td>29.03</td>\n",
       "      <td>29.39</td>\n",
       "      <td>28.73</td>\n",
       "      <td>29.26</td>\n",
       "      <td>48012112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2016-01-07</td>\n",
       "      <td>28.73</td>\n",
       "      <td>29.25</td>\n",
       "      <td>27.73</td>\n",
       "      <td>28.50</td>\n",
       "      <td>23647604</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2016-01-08</td>\n",
       "      <td>28.73</td>\n",
       "      <td>29.18</td>\n",
       "      <td>27.63</td>\n",
       "      <td>28.67</td>\n",
       "      <td>98239664</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date   open   high    low  close    volume\n",
       "0  2016-01-04  30.57  30.57  28.63  28.78  70997200\n",
       "1  2016-01-05  28.41  29.54  28.23  29.23  87498504\n",
       "2  2016-01-06  29.03  29.39  28.73  29.26  48012112\n",
       "3  2016-01-07  28.73  29.25  27.73  28.50  23647604\n",
       "4  2016-01-08  28.73  29.18  27.63  28.67  98239664"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "training_set_ori.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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r79GVTn22GP55JNPGDBgAKNHjyYnJ4fNmzfTp08fTjrpJHJzcyO+bo8ePWjVqhXt27dn4MCBnHjiiRxzzDGcfPLJPPzww9x7773k5+fz22+/cc455zBx4kQ6derE0KFDeeyxx7j44os59dRTeemll+jTpw/r168nKyvr99cfP348I0eO5N1336V58+ZRf78FCxawYMECOnToAMC0adOYMmUKWVlZTJ48+ffrbr/9dpo2bcqsWbMAWLNmDatWreIf//gHH374IY0aNeLuu+9m5MiR/O1vf6vQ39ZUw4ABbmur7JkS0iPxJ8jmzZvp2bMnCxcupHfv3gwaNAhwiX/ChAn06tULcC3hefPmMWDAAB566CHGjx8PwOLFi5k3b17UxF+7dm3ef/99pk6dysSJE7nqqquYNm0at956a9h1c+fOpX379nTq1AmAYcOG8cgjjzBw4EBat25Nnz59AGjSpMnvz5k0aRIFBQVMmDAh7HzQSy+9xJQpU6hfvz6PP/44OTlu+dljjz027APE8+GHH/Liiy/+fty8eXPefvttZs+ezQEHHADA1q1b6d+/f9l/WJM8tm8P369jKSMdpMe/YgVb5rHm9fGvW7eOwYMH88gjj3D55Zejqlx//fVccMEFYddPnjyZDz/8kC+++IKGDRty8MEHlzt/XUTo27cvffv2ZdCgQQwfPrxU4o+2brKqRp0q+Yc//IEFCxbw448/kp+fH/GaU089lYcffrjU+UaNGlX4/VSVQYMGMW7cuIjPMUlu82Z/f906iNJIManF+vhjoGnTpjz00EPce++9bNu2jSOOOILRo0f/3pf966+/smLFCtatW0fz5s1p2LAhc+bM4csvvyzzdZcsWcL06dN/P54xYwZt27YFIDs7+/f++i5durBw4UJ++uknAJ577jkOOuggunTpwpIlS5g6dSoAGzZsYHuoBde2bVtee+01hg4dyvfffx+Tv8Phhx8e9kGxZs0a+vXrx2efffZ7bJs2beLHH3+MyfuZOFu1CoLfBoMfAialWeKPkV69etGjRw9efPFFDj/8cM444wz69+9Pt27dOPnkk9mwYQNHHnkk27dvp3v37tx8883069evzNfctm0bV199NV26dKFnz5689NJLPPjggwCcc845XHjhhfTs2RNV5emnn2bIkCF069aNWrVqceGFF1KvXj1eeuklLrvs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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# visualising the results\n",
    "%matplotlib inline\n",
    "plt.plot(training_set_ori.loc[:,['open']], color = 'red', label = 'Real Stock Price')\n",
    "plt.title('Stock Price')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(731, 1) <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "# input/ouputs of recurrent neural (input != date, stock price)\n",
    "# but stock price at time t for input, and stock price t+1 for the output\n",
    "# create a set only with the \"Open\" Google stock price, extract that column\n",
    "# two-dimensional numpy array\n",
    "training_set_ori = training_set_ori.loc[:,['open']].values\n",
    "print(training_set_ori.shape,type(training_set_ori))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "training_set = training_set_ori"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(731, 1) <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "print(training_set.shape,type(training_set))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEWCAYAAABhffzLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dd5hUVdKH3wKJQx4QwSGtAUVAQFAxgIoJV0H8lDWCGDBHVkVZFcMaMMdVVsEABgwIKu6qCBjWBAoSBDEgIEgY8pChvj/OvfTtme6enpnu6Z7uep+nn3Pvuam6GX59uk6dKlFVDMMwjOyhUqoNMAzDMMoXE37DMIwsw4TfMAwjyzDhNwzDyDJM+A3DMLIME37DMIwsw4TfyChEZKiIjPK2m4vIBhGpnOBnLBCRYxN5z1LY8IKI3J2kez8jIrcm495GemDCb5QIT/SWiUhOoO8iEZmcQrMioqoLVbWWqu4or2eKSJ6IvCUiK0VkrYjMFJHzvWMtRURFZLfyssd77mQR2ex9Ca4UkbdFpEm081X1UlW9qzxtNMoXE36jNOwGXFPWm4gj0/4GXwYWAS2AXKAfsCylFjmuVNVawL5APeCRSCcl+teRkZ5k2n86o3x4APi7iNSLdFBEDhORb70R77cicljg2GQR+aeIfAFsBP7i9d0tIv/zRqXvikiuiIwWkXXePVoG7vGYiCzyjk0TkSOj2LFrhC0iXb17+6/NIrLAO6+SiAwWkV9EJF9ExohIg8B9zhOR371jQ4r5bLoAL6hqgapuV9XvVfUD79inXrvGs6Gr9+x/ePdfLiIviUjdwLOP8D6XNd57Pj/C+6wtIpNE5HERkVjGqeoq4C2grXftCyLyLxGZICIFwNGF3Ugi0ltEpnuf9y8icqLXX1dEnheRpSLyh/dvaF8cFQATfqM0TAUmA38vfMATzPeBx3Ej3oeB90UkN3DaecBAoDbwu9d3pte/J7AX8CUwEmgA/AjcHrj+W6CDd+wV4A0RqR7LYFX90nP71ALqA18Br3qHrwZOBboDTYHVwFPe+2kD/Muzran3nvJiPOor4CkROVNEmhc61s1r63m2fAmc772OBv4C1AKe9J7dHPgAeAJo5L3n6cEbep/rROALVb1ai8nBIiINgf8Dvg90nw38E/fv8Xmh8w8GXgJuwP1S6AYs8A6/CGwH9gY6AscDF8V6vpEmqKq97BX3C/ef/ljciHEtTpAuAiZ7x88Dvil0zZfA+d72ZODOQscnA0MC+w8BHwT2TwGmx7BpNXCgtz0UGOVttwQU2K3Q+f/CfTlV8vZ/BHoEjjcBtuFcWrcBrwWO5QBbgWOj2FIfuA+YDezACXWXaPbgRPvywH7rwLNvBsZGec4LwAhgFnBDMf9mk3G/rtYAfwCjgUaB+7wU4d53e9vPAo9EuGdjYAtQI9B3FjAp1X+j9ir+Va6TTEbmoKqzROQ9YDBOOH2aEhrF+/yOG8n7LIpwy6AffFOE/Vr+jogMwn3ZNMUJaR2gYTx2i8glwFHAoaq60+tuAYwVkZ2BU3fgxK1p0F5VLRCR/Gj3V9XVuM9ksDe6fhB4R0Si/Uoo/Hn9jhP9xkAz4JcYb+evwAbgmRjn+Fytqs9FORbp38OnGTAhQn8LoAqwNOBdqlTMvYw0wVw9Rlm4HbiYcFFfghOFIM1xI02fUqeE9fz5NwF9gfqqWg/3yyOmbztw7V1Ab1VdGzi0COipqvUCr+qq+gewFCd+/j1q4tw9xaKqK3HC3xTnlor0vgt/Xs1x7pNlnl17xXjEv4H/ABOCUValINa/RzQbFuFG/A0Dn1kdVT2gDHYY5YQJv1FqVPVn4HWcj9xnArCviJztTar+DWgDvJegx9bGCeMKYDcRuQ034o+JiDTzbO2nqj8VOvwM8E8RaeGd20hEenvH3gRO9iZZqwJ3EuP/jYjcLyJtvfdeG7gM+FlV8z2bd+J8+T6vAteJSCsRqQXcA7yuqttxLpljRaSvd79cEelQ6JFXAvOA90SkRnGfQyl4HhggIj28ieg9RWQ/VV0KfAg8JCJ1vGN7iUj3JNhgJBgTfqOs3InzewPgCdzJwCAgH7gRONkb/SaC/+ImPH/CuUU2E597oQewB/BmILJntnfsMWA88KGIrMdN0B7ivZ/ZwBW4SeSluPmExTGeUxMYi/On/4obzffy7rURN4n6hRelcyjOT/8yLuLnN+/9XOWdvxA4CfdZrsLNFxwYfJiqKm6ifBEwrrhJ7pKiqt8AA3Dhn2uBKYR+ofQDqgJzcJ/Lm7j5ESPNEfd3YxiGYWQLNuI3DMPIMkz4DcMwsgwTfsMwjCzDhN8wDCPLqBALuBo2bKgtW7ZMtRmGYRgVimnTpq1U1UaF+yuE8Lds2ZKpU6em2gzDMIwKhYgUXkUPmKvHMAwj6zDhNwzDyDJM+A3DMLKMCuHjj8S2bdtYvHgxmzdvTrUpRgZRvXp18vLyqFKlSqpNMYykUWGFf/HixdSuXZuWLVtSTNEhw4gLVSU/P5/FixfTqlWrVJtjGEmjwrp6Nm/eTG5urom+kTBEhNzcXPsVaWQ8FVb4ARN9I+HY35SRDVRo4TcMoxyYNAnmzk21FUYCMeEvAyLCoEGDdu0/+OCDDB06tFxtOP/883nzzTcBuOiii5gzZ06Z7rdgwQLatm1bpH/nzp1cffXVtG3blnbt2tGlSxd+++03AO65555SPy9of6xzWrVqRYcOHejUqRNffvllxPOeeeYZXnrppVLbYkThmGNg//1TbYWRQEz4y0C1atV4++23WbmydDVGtm/fnlB7nnvuOdq0aZPQe/q8/vrrLFmyhB9++IGZM2cyduxY6tWrB5RN+OPlgQceYPr06dx3331ccsklRY5v376dSy+9lH79+iXdFsOo6Jjwl4HddtuNgQMH8sgjjxQ59vvvv9OjRw/at29Pjx49WLhwIeBGr9dffz1HH300N910E0OHDqV///4cf/zxtGzZkrfffpsbb7yRdu3aceKJJ7Jt2zYA7rzzTrp06ULbtm0ZOHAgkQroHHXUUUydOpXx48fToUMHOnToQOvWrXdFqEybNo3u3btz0EEHccIJJ7B06dJd/QceeCBdu3blqaeeivhely5dSpMmTahUyf3J5OXlUb9+fQYPHsymTZvo0KED55xzDgAPP/wwbdu2pW3btjz66KO77vHSSy/Rvn17DjzwQM4777wiz7j11ls5//zz2blzZ5FjPt26dePnn3/e9X5vueUWunfvzmOPPcbQoUN58MEHAfj555859thjOfDAA+nUqRO//OJqlj/wwAN06dKF9u3bc/vtt0d9Tkbw2WdgqU6MCFTYcM4wrr0Wpk9P7D07dICAaEXjiiuuoH379tx4441h/VdeeSX9+vWjf//+jBgxgquvvpp33nkHgJ9++omPP/6YypUrM3ToUH755RcmTZrEnDlz6Nq1K2+99RbDhg2jT58+vP/++5x66qlceeWV3HbbbQCcd955vPfee5xyyikRberVqxe9evUCoG/fvnTv3p1t27Zx1VVXMW7cOBo1asTrr7/OkCFDGDFiBAMGDOCJJ56ge/fu3HDDDRHv2bdvX4444gg+++wzevTowbnnnkvHjh257777ePLJJ5nuff7Tpk1j5MiRfP3116gqhxxyCN27d6dq1ar885//5IsvvqBhw4asWrUq7P433ngja9euZeTIkTEnWN99913atWu3a3/NmjVMmTIFIMzNds455zB48GD69OnD5s2b2blzJx9++CHz58/nm2++QVXp1asXn376Kd26dYv6vAqN/76syp5RCBvxl5E6derQr18/Hn/88bD+L7/8krPPPhtwQv3555/vOnbGGWdQuXLlXfs9e/akSpUqtGvXjh07dnDiiScC0K5dOxYsWADApEmTOOSQQ2jXrh2ffPIJs2fPpjiGDRtGjRo1uOKKK5g3bx6zZs3iuOOOo0OHDtx9990sXryYtWvXsmbNGrp3777L1kjk5eUxb9487r33XipVqkSPHj2YOHFikfM+//xz+vTpQ05ODrVq1eK0007js88+45NPPuH000+nYcOGADRo0GDXNXfddRdr1qzh2WefjSr6N9xwAx06dGD48OE8//zzu/r/9re/FTl3/fr1/PHHH/Tp0wdwi7Jq1qzJhx9+yIcffkjHjh3p1KkTc+fOZf78+cV+jllN0B2ZYNekkToyY8Qfx8g8mVx77bV06tSJAQMGRD0nKGg5OTlhx6pVqwZApUqVqFKlyq5zK1WqxPbt29m8eTOXX345U6dOpVmzZgwdOrTYWPOJEyfyxhtv8OmnnwJucdIBBxxQZGJ0zZo1cYcwVqtWjZ49e9KzZ08aN27MO++8Q48ePcLOiVbDWVWjPqdLly5MmzaNVatWhX0hBHnggQc4/fTTi/QX/iyLs+Hmm2+OOEdgRGHTptD22rWQm5s6W4yEYSP+BNCgQQP69u0bNhI97LDDeO211wAYPXo0RxxxRKnv74t8w4YN2bBhQ7FRML///juXX345Y8aMoUaNGgC0bt2aFStW7BL+bdu2MXv2bOrVq0fdunV3/SIZPXp0xHt+9913LFmyBHARPj/88AMtWrQAoEqVKrvmIrp168Y777zDxo0bKSgoYOzYsRx55JH06NGDMWPGkJ+fDxDm6jnxxBMZPHgwf/3rX1m/fn2pPqMgderUIS8vb5drbcuWLWzcuJETTjiBESNGsGHDBgD++OMPli9fXubnZSwrV0KdOqH94JeAUaHJjBF/GjBo0CCefPLJXfuPP/44F1xwAQ888ACN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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(training_set, color = 'red', label = 'Normalized Stock Price')\n",
    "plt.title('Normalized Stock Price')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Normalized Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Getting the inputs and the outputs, y_train is output, x_train is the input\n",
    "m = training_set.shape[0]\n",
    "X_train = training_set[0:m-1]\n",
    "y_train = training_set[1:m]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(730, 1)\n"
     ]
    }
   ],
   "source": [
    "print(X_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Reshaping inputs, input has a certain format (2D array, features)\n",
    "# Changing the format of X_train into a 3D array, with a timestep\n",
    "# Keras Documentation - why reshape? - 3D tensor with shape (batch_size, timesteps)\n",
    "# time steps different between output and input time, input_dim dimension of input feature\n",
    "X_train = np.reshape(X_train, (m-1, 1, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 2 - Building the RNN\n",
    "\n",
    "# Importing the keras libs and packages\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense\n",
    "from keras.layers import LSTM\n",
    "\n",
    "# Initialising the RNN\n",
    "# predicting a continuous outcome, regression model\n",
    "regressor = Sequential()\n",
    "\n",
    "# Adding the input layer and the LSTM layer\n",
    "regressor.add(LSTM(units = 4, activation = 'sigmoid', input_shape = (None, 1)))\n",
    "\n",
    "# Adding the output layer\n",
    "regressor.add(Dense(units = 1))\n",
    "\n",
    "# Compiling the RNN\n",
    "# use the mean square error\n",
    "# regression won't be binary cross entropy, MSE for regression\n",
    "regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1105.4957\n",
      "Epoch 2/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1101.6025\n",
      "Epoch 3/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1097.7618\n",
      "Epoch 4/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1093.9050\n",
      "Epoch 5/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 1090.0428\n",
      "Epoch 6/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 1086.2233\n",
      "Epoch 7/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1082.3790\n",
      "Epoch 8/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1078.5843\n",
      "Epoch 9/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1074.7730\n",
      "Epoch 10/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1070.9451\n",
      "Epoch 11/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1067.2017\n",
      "Epoch 12/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1063.4097\n",
      "Epoch 13/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1059.6368\n",
      "Epoch 14/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1055.8914\n",
      "Epoch 15/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1052.1467\n",
      "Epoch 16/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1048.4046\n",
      "Epoch 17/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1044.6743\n",
      "Epoch 18/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1040.9507\n",
      "Epoch 19/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1037.2399\n",
      "Epoch 20/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 1033.5347\n",
      "Epoch 21/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 1029.8761\n",
      "Epoch 22/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1026.1775\n",
      "Epoch 23/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1022.5075\n",
      "Epoch 24/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1018.8607\n",
      "Epoch 25/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1015.1959\n",
      "Epoch 26/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1011.5643\n",
      "Epoch 27/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 1007.9475\n",
      "Epoch 28/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1004.3324\n",
      "Epoch 29/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1000.6976\n",
      "Epoch 30/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 997.1214\n",
      "Epoch 31/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 993.5455\n",
      "Epoch 32/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 989.9511\n",
      "Epoch 33/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 986.3824\n",
      "Epoch 34/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 982.8243\n",
      "Epoch 35/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 979.2757\n",
      "Epoch 36/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 975.7206\n",
      "Epoch 37/2000\n",
      "730/730 [==============================] - 0s 87us/step - loss: 972.1887\n",
      "Epoch 38/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 968.6939\n",
      "Epoch 39/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 965.1682\n",
      "Epoch 40/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 961.6607\n",
      "Epoch 41/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 958.1719\n",
      "Epoch 42/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 954.6803\n",
      "Epoch 43/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 951.2241\n",
      "Epoch 44/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 947.7686\n",
      "Epoch 45/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 944.2979\n",
      "Epoch 46/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 940.8605\n",
      "Epoch 47/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 937.4415\n",
      "Epoch 48/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 933.9999\n",
      "Epoch 49/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 930.5934\n",
      "Epoch 50/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 927.1957\n",
      "Epoch 51/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 923.7899\n",
      "Epoch 52/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 920.3971\n",
      "Epoch 53/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 917.0205\n",
      "Epoch 54/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 913.6694\n",
      "Epoch 55/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 910.2977\n",
      "Epoch 56/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 906.9731\n",
      "Epoch 57/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 903.6234\n",
      "Epoch 58/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 900.2921\n",
      "Epoch 59/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 896.9805\n",
      "Epoch 60/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 893.6619\n",
      "Epoch 61/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 890.3734\n",
      "Epoch 62/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 887.0660\n",
      "Epoch 63/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 883.8087\n",
      "Epoch 64/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 880.5191\n",
      "Epoch 65/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 877.2750\n",
      "Epoch 66/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 874.0218\n",
      "Epoch 67/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 870.7778\n",
      "Epoch 68/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 867.5543\n",
      "Epoch 69/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 864.3410\n",
      "Epoch 70/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 861.1296\n",
      "Epoch 71/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 857.9079\n",
      "Epoch 72/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 854.7191\n",
      "Epoch 73/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 851.5408\n",
      "Epoch 74/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 848.3477\n",
      "Epoch 75/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 845.1900\n",
      "Epoch 76/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 842.0424\n",
      "Epoch 77/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 838.8734\n",
      "Epoch 78/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 835.7625\n",
      "Epoch 79/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 832.6325\n",
      "Epoch 80/2000\n",
      "730/730 [==============================] - 0s 50us/step - loss: 829.5106\n",
      "Epoch 81/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 826.3928\n",
      "Epoch 82/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 823.3056\n",
      "Epoch 83/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 820.2200\n",
      "Epoch 84/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 817.1405\n",
      "Epoch 85/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 814.0881\n",
      "Epoch 86/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 811.0140\n",
      "Epoch 87/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 807.9566\n",
      "Epoch 88/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 804.9053\n",
      "Epoch 89/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 801.8874\n",
      "Epoch 90/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 798.8720\n",
      "Epoch 91/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 795.8536\n",
      "Epoch 92/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 792.8364\n",
      "Epoch 93/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 789.8709\n",
      "Epoch 94/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 786.8511\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 95/2000\n",
      "730/730 [==============================] - 0s 51us/step - loss: 783.8934\n",
      "Epoch 96/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 780.9268\n",
      "Epoch 97/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 777.9698\n",
      "Epoch 98/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 775.0085\n",
      "Epoch 99/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 772.0701\n",
      "Epoch 100/2000\n",
      "730/730 [==============================] - 0s 61us/step - loss: 769.1532\n",
      "Epoch 101/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 766.2267\n",
      "Epoch 102/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 763.3109\n",
      "Epoch 103/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 760.4315\n",
      "Epoch 104/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 757.5327\n",
      "Epoch 105/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 754.6450\n",
      "Epoch 106/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 751.7824\n",
      "Epoch 107/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 748.9068\n",
      "Epoch 108/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 746.0587\n",
      "Epoch 109/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 743.2037\n",
      "Epoch 110/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 740.3742\n",
      "Epoch 111/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 737.5507\n",
      "Epoch 112/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 734.7392\n",
      "Epoch 113/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 731.9258\n",
      "Epoch 114/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 729.1271\n",
      "Epoch 115/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 726.3439\n",
      "Epoch 116/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 723.5715\n",
      "Epoch 117/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 720.7970\n",
      "Epoch 118/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 718.0428\n",
      "Epoch 119/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 715.2860\n",
      "Epoch 120/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 712.5524\n",
      "Epoch 121/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 709.8083\n",
      "Epoch 122/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 707.1017\n",
      "Epoch 123/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 704.3964\n",
      "Epoch 124/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 701.6731\n",
      "Epoch 125/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 698.9773\n",
      "Epoch 126/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 696.2922\n",
      "Epoch 127/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 693.6258\n",
      "Epoch 128/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 690.9697\n",
      "Epoch 129/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 688.2926\n",
      "Epoch 130/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 685.6525\n",
      "Epoch 131/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 683.0108\n",
      "Epoch 132/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 680.3683\n",
      "Epoch 133/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 677.7590\n",
      "Epoch 134/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 675.1561\n",
      "Epoch 135/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 672.5180\n",
      "Epoch 136/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 669.9432\n",
      "Epoch 137/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 667.3575\n",
      "Epoch 138/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 664.7885\n",
      "Epoch 139/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 662.2037\n",
      "Epoch 140/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 659.6523\n",
      "Epoch 141/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 657.1233\n",
      "Epoch 142/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 654.5611\n",
      "Epoch 143/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 652.0552\n",
      "Epoch 144/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 649.5094\n",
      "Epoch 145/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 647.0100\n",
      "Epoch 146/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 644.5245\n",
      "Epoch 147/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 642.0277\n",
      "Epoch 148/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 639.5283\n",
      "Epoch 149/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 637.0790\n",
      "Epoch 150/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 634.5937\n",
      "Epoch 151/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 632.1348\n",
      "Epoch 152/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 629.7108\n",
      "Epoch 153/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 627.2640\n",
      "Epoch 154/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 624.8402\n",
      "Epoch 155/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 622.4156\n",
      "Epoch 156/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 620.0083\n",
      "Epoch 157/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 617.6155\n",
      "Epoch 158/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 615.2246\n",
      "Epoch 159/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 612.8332\n",
      "Epoch 160/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 610.4664\n",
      "Epoch 161/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 608.1098\n",
      "Epoch 162/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 605.7541\n",
      "Epoch 163/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 603.4110\n",
      "Epoch 164/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 601.0548\n",
      "Epoch 165/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 598.7318\n",
      "Epoch 166/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 596.4287\n",
      "Epoch 167/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 594.1047\n",
      "Epoch 168/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 591.8201\n",
      "Epoch 169/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 589.4882\n",
      "Epoch 170/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 587.2213\n",
      "Epoch 171/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 584.9392\n",
      "Epoch 172/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 582.6921\n",
      "Epoch 173/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 580.4328\n",
      "Epoch 174/2000\n",
      "730/730 [==============================] - 0s 61us/step - loss: 578.1725\n",
      "Epoch 175/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 575.9288\n",
      "Epoch 176/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 573.7062\n",
      "Epoch 177/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 571.4831\n",
      "Epoch 178/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 569.2607\n",
      "Epoch 179/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 567.0823\n",
      "Epoch 180/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 564.8690\n",
      "Epoch 181/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 562.6662\n",
      "Epoch 182/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 560.5336\n",
      "Epoch 183/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 558.3132\n",
      "Epoch 184/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 556.1981\n",
      "Epoch 185/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 554.0329\n",
      "Epoch 186/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 551.8912\n",
      "Epoch 187/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 549.7576\n",
      "Epoch 188/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 63us/step - loss: 547.6441\n",
      "Epoch 189/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 545.5331\n",
      "Epoch 190/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 543.4134\n",
      "Epoch 191/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 541.3106\n",
      "Epoch 192/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 539.2756\n",
      "Epoch 193/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 537.1571\n",
      "Epoch 194/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 535.0873\n",
      "Epoch 195/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 533.0586\n",
      "Epoch 196/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 530.9955\n",
      "Epoch 197/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 528.9570\n",
      "Epoch 198/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 526.9139\n",
      "Epoch 199/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 524.9064\n",
      "Epoch 200/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 522.8787\n",
      "Epoch 201/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 520.8928\n",
      "Epoch 202/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 518.8870\n",
      "Epoch 203/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 516.9018\n",
      "Epoch 204/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 514.9078\n",
      "Epoch 205/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 512.9641\n",
      "Epoch 206/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 510.9637\n",
      "Epoch 207/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 509.0225\n",
      "Epoch 208/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 507.0877\n",
      "Epoch 209/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 505.0671\n",
      "Epoch 210/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 503.1216\n",
      "Epoch 211/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 501.1914\n",
      "Epoch 212/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 499.2438\n",
      "Epoch 213/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 497.2991\n",
      "Epoch 214/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 495.4103\n",
      "Epoch 215/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 493.4827\n",
      "Epoch 216/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 390.832 - 0s 74us/step - loss: 491.5721\n",
      "Epoch 217/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 489.6590\n",
      "Epoch 218/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 487.7811\n",
      "Epoch 219/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 485.8988\n",
      "Epoch 220/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 483.9998\n",
      "Epoch 221/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 482.1172\n",
      "Epoch 222/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 480.2435\n",
      "Epoch 223/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 478.3690\n",
      "Epoch 224/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 476.5249\n",
      "Epoch 225/2000\n",
      "730/730 [==============================] - 0s 52us/step - loss: 474.6376\n",
      "Epoch 226/2000\n",
      "730/730 [==============================] - 0s 90us/step - loss: 472.8012\n",
      "Epoch 227/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 470.9574\n",
      "Epoch 228/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 469.1262\n",
      "Epoch 229/2000\n",
      "730/730 [==============================] - 0s 56us/step - loss: 467.2822\n",
      "Epoch 230/2000\n",
      "730/730 [==============================] - 0s 92us/step - loss: 465.4574\n",
      "Epoch 231/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 463.6257\n",
      "Epoch 232/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 461.8082\n",
      "Epoch 233/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 459.9839\n",
      "Epoch 234/2000\n",
      "730/730 [==============================] - 0s 88us/step - loss: 458.1796\n",
      "Epoch 235/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 456.3664\n",
      "Epoch 236/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 454.5791\n",
      "Epoch 237/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 452.7693\n",
      "Epoch 238/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 450.9705\n",
      "Epoch 239/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 449.1738\n",
      "Epoch 240/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 447.4068\n",
      "Epoch 241/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 445.6066\n",
      "Epoch 242/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 443.8350\n",
      "Epoch 243/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 442.0463\n",
      "Epoch 244/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 440.2751\n",
      "Epoch 245/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 438.5249\n",
      "Epoch 246/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 436.7331\n",
      "Epoch 247/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 435.0029\n",
      "Epoch 248/2000\n",
      "730/730 [==============================] - 0s 88us/step - loss: 433.1955\n",
      "Epoch 249/2000\n",
      "730/730 [==============================] - 0s 93us/step - loss: 431.2992\n",
      "Epoch 250/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 429.4919\n",
      "Epoch 251/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 427.7117\n",
      "Epoch 252/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 425.9131\n",
      "Epoch 253/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 424.0675\n",
      "Epoch 254/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 422.2698\n",
      "Epoch 255/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 420.4647\n",
      "Epoch 256/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 418.7512\n",
      "Epoch 257/2000\n",
      "730/730 [==============================] - 0s 61us/step - loss: 416.9182\n",
      "Epoch 258/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 415.1509\n",
      "Epoch 259/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 413.3716\n",
      "Epoch 260/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 411.6120\n",
      "Epoch 261/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 409.8437\n",
      "Epoch 262/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 408.0837\n",
      "Epoch 263/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 406.3479\n",
      "Epoch 264/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 404.5906\n",
      "Epoch 265/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 402.8170\n",
      "Epoch 266/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 401.0792\n",
      "Epoch 267/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 399.3302\n",
      "Epoch 268/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 397.5736\n",
      "Epoch 269/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 395.8523\n",
      "Epoch 270/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 394.1150\n",
      "Epoch 271/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 392.3826\n",
      "Epoch 272/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 390.6647\n",
      "Epoch 273/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 389.0137\n",
      "Epoch 274/2000\n",
      "730/730 [==============================] - 0s 53us/step - loss: 387.2271\n",
      "Epoch 275/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 385.4668\n",
      "Epoch 276/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 383.7898\n",
      "Epoch 277/2000\n",
      "730/730 [==============================] - 0s 38us/step - loss: 382.0762\n",
      "Epoch 278/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 380.3383\n",
      "Epoch 279/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 378.6568\n",
      "Epoch 280/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 376.9359\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 281/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 375.2354\n",
      "Epoch 282/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 373.5657\n",
      "Epoch 283/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 371.8542\n",
      "Epoch 284/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 508.745 - 0s 63us/step - loss: 370.1475\n",
      "Epoch 285/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 368.4684\n",
      "Epoch 286/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 366.7977\n",
      "Epoch 287/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 365.1036\n",
      "Epoch 288/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 363.4423\n",
      "Epoch 289/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 361.7760\n",
      "Epoch 290/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 360.0870\n",
      "Epoch 291/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 515.526 - 0s 59us/step - loss: 358.4106\n",
      "Epoch 292/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 356.7376\n",
      "Epoch 293/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 355.0855\n",
      "Epoch 294/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 353.4699\n",
      "Epoch 295/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 351.8008\n",
      "Epoch 296/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 350.1197\n",
      "Epoch 297/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 348.4663\n",
      "Epoch 298/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 346.8302\n",
      "Epoch 299/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 345.2178\n",
      "Epoch 300/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 343.5459\n",
      "Epoch 301/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 341.9360\n",
      "Epoch 302/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 340.2770\n",
      "Epoch 303/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 338.6527\n",
      "Epoch 304/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 337.0485\n",
      "Epoch 305/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 335.3814\n",
      "Epoch 306/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 333.7811\n",
      "Epoch 307/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 332.1640\n",
      "Epoch 308/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 330.5942\n",
      "Epoch 309/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 328.9758\n",
      "Epoch 310/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 327.3867\n",
      "Epoch 311/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 325.8112\n",
      "Epoch 312/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 324.1602\n",
      "Epoch 313/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 322.5755\n",
      "Epoch 314/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 320.9898\n",
      "Epoch 315/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 319.4215\n",
      "Epoch 316/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 317.8265\n",
      "Epoch 317/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 316.2895\n",
      "Epoch 318/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 314.7104\n",
      "Epoch 319/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 378.958 - 0s 58us/step - loss: 313.1393\n",
      "Epoch 320/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 261.555 - 0s 62us/step - loss: 311.5743\n",
      "Epoch 321/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 310.0099\n",
      "Epoch 322/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 308.4512\n",
      "Epoch 323/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 306.9156\n",
      "Epoch 324/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 305.3730\n",
      "Epoch 325/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 303.8430\n",
      "Epoch 326/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 302.3110\n",
      "Epoch 327/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 300.7439\n",
      "Epoch 328/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 299.2438\n",
      "Epoch 329/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 297.7393\n",
      "Epoch 330/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 296.2034\n",
      "Epoch 331/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 294.7079\n",
      "Epoch 332/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 293.1736\n",
      "Epoch 333/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 291.6899\n",
      "Epoch 334/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 290.1881\n",
      "Epoch 335/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 288.6787\n",
      "Epoch 336/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 287.1941\n",
      "Epoch 337/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 285.6968\n",
      "Epoch 338/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 284.2669\n",
      "Epoch 339/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 282.7523\n",
      "Epoch 340/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 281.2595\n",
      "Epoch 341/2000\n",
      "730/730 [==============================] - 0s 61us/step - loss: 279.8125\n",
      "Epoch 342/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 278.3593\n",
      "Epoch 343/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 276.8890\n",
      "Epoch 344/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 275.4134\n",
      "Epoch 345/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 273.9774\n",
      "Epoch 346/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 272.5547\n",
      "Epoch 347/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 271.1163\n",
      "Epoch 348/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 269.6567\n",
      "Epoch 349/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 268.2365\n",
      "Epoch 350/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 266.7905\n",
      "Epoch 351/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 265.3832\n",
      "Epoch 352/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 263.9543\n",
      "Epoch 353/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 262.5534\n",
      "Epoch 354/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 261.1441\n",
      "Epoch 355/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 259.7763\n",
      "Epoch 356/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 258.3492\n",
      "Epoch 357/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 256.9601\n",
      "Epoch 358/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 255.5684\n",
      "Epoch 359/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 254.1876\n",
      "Epoch 360/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 252.7996\n",
      "Epoch 361/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 251.4545\n",
      "Epoch 362/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 250.0689\n",
      "Epoch 363/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 248.7023\n",
      "Epoch 364/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 247.3335\n",
      "Epoch 365/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 245.9966\n",
      "Epoch 366/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 244.6391\n",
      "Epoch 367/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 243.2798\n",
      "Epoch 368/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 241.9758\n",
      "Epoch 369/2000\n",
      "730/730 [==============================] - 0s 61us/step - loss: 240.6119\n",
      "Epoch 370/2000\n",
      "730/730 [==============================] - 0s 56us/step - loss: 239.2929\n",
      "Epoch 371/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 237.9678\n",
      "Epoch 372/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 67us/step - loss: 236.6390\n",
      "Epoch 373/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 235.3286\n",
      "Epoch 374/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 234.0165\n",
      "Epoch 375/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 232.7080\n",
      "Epoch 376/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 231.4288\n",
      "Epoch 377/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 230.1199\n",
      "Epoch 378/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 228.8373\n",
      "Epoch 379/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 227.5493\n",
      "Epoch 380/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 226.2496\n",
      "Epoch 381/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 224.9833\n",
      "Epoch 382/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 223.7207\n",
      "Epoch 383/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 222.4334\n",
      "Epoch 384/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 221.1742\n",
      "Epoch 385/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 219.9243\n",
      "Epoch 386/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 218.6653\n",
      "Epoch 387/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 217.4202\n",
      "Epoch 388/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 216.1758\n",
      "Epoch 389/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 214.9238\n",
      "Epoch 390/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 213.6859\n",
      "Epoch 391/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 212.4642\n",
      "Epoch 392/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 211.2324\n",
      "Epoch 393/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 210.0564\n",
      "Epoch 394/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 208.8336\n",
      "Epoch 395/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 207.6002\n",
      "Epoch 396/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 206.4129\n",
      "Epoch 397/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 232.317 - 0s 60us/step - loss: 205.2119\n",
      "Epoch 398/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 204.0119\n",
      "Epoch 399/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 202.8116\n",
      "Epoch 400/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 201.6218\n",
      "Epoch 401/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 200.4581\n",
      "Epoch 402/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 199.2617\n",
      "Epoch 403/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 198.1184\n",
      "Epoch 404/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 196.9433\n",
      "Epoch 405/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 195.7674\n",
      "Epoch 406/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 194.6101\n",
      "Epoch 407/2000\n",
      "730/730 [==============================] - 0s 56us/step - loss: 193.4812\n",
      "Epoch 408/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 192.3272\n",
      "Epoch 409/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 191.1870\n",
      "Epoch 410/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 190.0260\n",
      "Epoch 411/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 188.9118\n",
      "Epoch 412/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 187.7625\n",
      "Epoch 413/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 186.6485\n",
      "Epoch 414/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 185.5821\n",
      "Epoch 415/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 184.4191\n",
      "Epoch 416/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 183.3103\n",
      "Epoch 417/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 182.2088\n",
      "Epoch 418/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 181.1287\n",
      "Epoch 419/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 180.0116\n",
      "Epoch 420/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 178.9196\n",
      "Epoch 421/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 177.8569\n",
      "Epoch 422/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 176.7629\n",
      "Epoch 423/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 175.6753\n",
      "Epoch 424/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 174.6027\n",
      "Epoch 425/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 173.5589\n",
      "Epoch 426/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 172.4802\n",
      "Epoch 427/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 171.4424\n",
      "Epoch 428/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 170.4192\n",
      "Epoch 429/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 169.3281\n",
      "Epoch 430/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 168.2896\n",
      "Epoch 431/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 167.2375\n",
      "Epoch 432/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 166.2020\n",
      "Epoch 433/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 165.1673\n",
      "Epoch 434/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 164.1387\n",
      "Epoch 435/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 163.1420\n",
      "Epoch 436/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 162.1134\n",
      "Epoch 437/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 161.1050\n",
      "Epoch 438/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 160.0910\n",
      "Epoch 439/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 159.0742\n",
      "Epoch 440/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 158.0961\n",
      "Epoch 441/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 157.1512\n",
      "Epoch 442/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 156.1413\n",
      "Epoch 443/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 155.1270\n",
      "Epoch 444/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 154.1560\n",
      "Epoch 445/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 153.1652\n",
      "Epoch 446/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 152.1742\n",
      "Epoch 447/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 151.2612\n",
      "Epoch 448/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 150.3203\n",
      "Epoch 449/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 149.3097\n",
      "Epoch 450/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 148.3822\n",
      "Epoch 451/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 147.4017\n",
      "Epoch 452/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 146.4338\n",
      "Epoch 453/2000\n",
      "730/730 [==============================] - 0s 44us/step - loss: 145.5255\n",
      "Epoch 454/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 144.5718\n",
      "Epoch 455/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 143.6425\n",
      "Epoch 456/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 142.7343\n",
      "Epoch 457/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 141.8010\n",
      "Epoch 458/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 140.8832\n",
      "Epoch 459/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 139.9658\n",
      "Epoch 460/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 139.0779\n",
      "Epoch 461/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 138.1488\n",
      "Epoch 462/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 137.2568\n",
      "Epoch 463/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 136.3387\n",
      "Epoch 464/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 135.4593\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 465/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 134.5843\n",
      "Epoch 466/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 133.6697\n",
      "Epoch 467/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 132.7870\n",
      "Epoch 468/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 131.9321\n",
      "Epoch 469/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 131.0372\n",
      "Epoch 470/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 130.2311\n",
      "Epoch 471/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 129.2970\n",
      "Epoch 472/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 128.4504\n",
      "Epoch 473/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 127.5838\n",
      "Epoch 474/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 126.7557\n",
      "Epoch 475/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 125.9349\n",
      "Epoch 476/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 125.0511\n",
      "Epoch 477/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 124.2188\n",
      "Epoch 478/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 123.3718\n",
      "Epoch 479/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 122.5366\n",
      "Epoch 480/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 121.7093\n",
      "Epoch 481/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 120.8958\n",
      "Epoch 482/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 120.0714\n",
      "Epoch 483/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 119.2526\n",
      "Epoch 484/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 118.4316\n",
      "Epoch 485/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 117.6401\n",
      "Epoch 486/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 116.8033\n",
      "Epoch 487/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 116.0460\n",
      "Epoch 488/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 115.2227\n",
      "Epoch 489/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 114.4339\n",
      "Epoch 490/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 113.6515\n",
      "Epoch 491/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 112.8550\n",
      "Epoch 492/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 112.0802\n",
      "Epoch 493/2000\n",
      "730/730 [==============================] - 0s 61us/step - loss: 111.3036\n",
      "Epoch 494/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 110.5411\n",
      "Epoch 495/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 109.7556\n",
      "Epoch 496/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 109.0031\n",
      "Epoch 497/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 108.2374\n",
      "Epoch 498/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 107.4963\n",
      "Epoch 499/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 111.831 - 0s 61us/step - loss: 106.7354\n",
      "Epoch 500/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 105.9866\n",
      "Epoch 501/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 105.2484\n",
      "Epoch 502/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 104.4877\n",
      "Epoch 503/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 103.7688\n",
      "Epoch 504/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 87.42 - 0s 62us/step - loss: 103.0370\n",
      "Epoch 505/2000\n",
      "730/730 [==============================] - 0s 98us/step - loss: 102.2932\n",
      "Epoch 506/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 101.5670\n",
      "Epoch 507/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 100.8573\n",
      "Epoch 508/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 100.1214\n",
      "Epoch 509/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 99.4094\n",
      "Epoch 510/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 98.7070\n",
      "Epoch 511/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 98.0641\n",
      "Epoch 512/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 97.3285\n",
      "Epoch 513/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 96.5939\n",
      "Epoch 514/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 95.9224\n",
      "Epoch 515/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 95.2050\n",
      "Epoch 516/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 94.5112\n",
      "Epoch 517/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 93.8371\n",
      "Epoch 518/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 93.1893\n",
      "Epoch 519/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 92.5224\n",
      "Epoch 520/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 91.8390\n",
      "Epoch 521/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 91.1825\n",
      "Epoch 522/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 90.4776\n",
      "Epoch 523/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 89.8216\n",
      "Epoch 524/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 89.1516\n",
      "Epoch 525/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 88.4992\n",
      "Epoch 526/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 87.8506\n",
      "Epoch 527/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 87.2183\n",
      "Epoch 528/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 86.5608\n",
      "Epoch 529/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 85.9082\n",
      "Epoch 530/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 85.2753\n",
      "Epoch 531/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 84.6499\n",
      "Epoch 532/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 84.0301\n",
      "Epoch 533/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 83.3974\n",
      "Epoch 534/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 82.7829\n",
      "Epoch 535/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 82.1548\n",
      "Epoch 536/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 81.5472\n",
      "Epoch 537/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 80.9608\n",
      "Epoch 538/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 80.3043\n",
      "Epoch 539/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 79.7126\n",
      "Epoch 540/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 79.1200\n",
      "Epoch 541/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 78.5064\n",
      "Epoch 542/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 77.9474\n",
      "Epoch 543/2000\n",
      "730/730 [==============================] - 0s 89us/step - loss: 77.3238\n",
      "Epoch 544/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 76.7313\n",
      "Epoch 545/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 76.1445\n",
      "Epoch 546/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 75.5638\n",
      "Epoch 547/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 74.9907\n",
      "Epoch 548/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 74.4065\n",
      "Epoch 549/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 73.8317\n",
      "Epoch 550/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 73.2768\n",
      "Epoch 551/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 72.7099\n",
      "Epoch 552/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 72.1356\n",
      "Epoch 553/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 71.6145\n",
      "Epoch 554/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 71.0234\n",
      "Epoch 555/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 70.4669\n",
      "Epoch 556/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 69.9454\n",
      "Epoch 557/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 69.3855\n",
      "Epoch 558/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 73us/step - loss: 68.8669\n",
      "Epoch 559/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 68.3204\n",
      "Epoch 560/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 67.7661\n",
      "Epoch 561/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 67.2401\n",
      "Epoch 562/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 66.7097\n",
      "Epoch 563/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 66.2134\n",
      "Epoch 564/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 65.6707\n",
      "Epoch 565/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 65.1410\n",
      "Epoch 566/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 64.6202\n",
      "Epoch 567/2000\n",
      "730/730 [==============================] - 0s 90us/step - loss: 64.1088\n",
      "Epoch 568/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 63.6123\n",
      "Epoch 569/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 63.1255\n",
      "Epoch 570/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 62.5875\n",
      "Epoch 571/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 62.1068\n",
      "Epoch 572/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 61.5980\n",
      "Epoch 573/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 61.1178\n",
      "Epoch 574/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 60.6194\n",
      "Epoch 575/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 60.1131\n",
      "Epoch 576/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 59.6383\n",
      "Epoch 577/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 59.1615\n",
      "Epoch 578/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 58.7089\n",
      "Epoch 579/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 58.2156\n",
      "Epoch 580/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 57.7439\n",
      "Epoch 581/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 57.2554\n",
      "Epoch 582/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 56.7999\n",
      "Epoch 583/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 56.3351\n",
      "Epoch 584/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 55.8718\n",
      "Epoch 585/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 55.4367\n",
      "Epoch 586/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 54.9641\n",
      "Epoch 587/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 54.5427\n",
      "Epoch 588/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 54.0567\n",
      "Epoch 589/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 53.6300\n",
      "Epoch 590/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 53.1814\n",
      "Epoch 591/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 52.7479\n",
      "Epoch 592/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 52.3041\n",
      "Epoch 593/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 51.8795\n",
      "Epoch 594/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 51.4504\n",
      "Epoch 595/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 51.0178\n",
      "Epoch 596/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 50.6155\n",
      "Epoch 597/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 50.1814\n",
      "Epoch 598/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 49.7631\n",
      "Epoch 599/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 49.3590\n",
      "Epoch 600/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 48.9494\n",
      "Epoch 601/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 48.5375\n",
      "Epoch 602/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 48.1247\n",
      "Epoch 603/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 47.7173\n",
      "Epoch 604/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 47.3238\n",
      "Epoch 605/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 46.9236\n",
      "Epoch 606/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 46.5283\n",
      "Epoch 607/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 46.1526\n",
      "Epoch 608/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 45.7790\n",
      "Epoch 609/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 45.3784\n",
      "Epoch 610/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 44.9735\n",
      "Epoch 611/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 44.5939\n",
      "Epoch 612/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 51.69 - 0s 63us/step - loss: 44.2516\n",
      "Epoch 613/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 43.8517\n",
      "Epoch 614/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 43.4718\n",
      "Epoch 615/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 43.1021\n",
      "Epoch 616/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 42.7614\n",
      "Epoch 617/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 42.4033\n",
      "Epoch 618/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 42.0152\n",
      "Epoch 619/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 41.6634\n",
      "Epoch 620/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 41.3465\n",
      "Epoch 621/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 40.9572\n",
      "Epoch 622/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 40.5962\n",
      "Epoch 623/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 40.2612\n",
      "Epoch 624/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 39.9151\n",
      "Epoch 625/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 39.6103\n",
      "Epoch 626/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 39.2473\n",
      "Epoch 627/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 38.9015\n",
      "Epoch 628/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 38.5823\n",
      "Epoch 629/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 38.2324\n",
      "Epoch 630/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 37.9538\n",
      "Epoch 631/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 37.5668\n",
      "Epoch 632/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 37.2749\n",
      "Epoch 633/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 36.9564\n",
      "Epoch 634/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 36.6214\n",
      "Epoch 635/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 36.3048\n",
      "Epoch 636/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 35.9926\n",
      "Epoch 637/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 35.6638\n",
      "Epoch 638/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 35.3623\n",
      "Epoch 639/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 35.0555\n",
      "Epoch 640/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 34.7616\n",
      "Epoch 641/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 34.4555\n",
      "Epoch 642/2000\n",
      "730/730 [==============================] - 0s 54us/step - loss: 34.1429\n",
      "Epoch 643/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 33.8593\n",
      "Epoch 644/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 33.5747\n",
      "Epoch 645/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 33.2746\n",
      "Epoch 646/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 32.9925\n",
      "Epoch 647/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 32.6892\n",
      "Epoch 648/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 32.3990\n",
      "Epoch 649/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 32.1296\n",
      "Epoch 650/2000\n",
      "730/730 [==============================] - 0s 54us/step - loss: 31.8374\n",
      "Epoch 651/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 31.5802\n",
      "Epoch 652/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 62us/step - loss: 31.2979\n",
      "Epoch 653/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 31.0081\n",
      "Epoch 654/2000\n",
      "730/730 [==============================] - 0s 50us/step - loss: 30.7448\n",
      "Epoch 655/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 30.4574\n",
      "Epoch 656/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 30.1917\n",
      "Epoch 657/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 29.9243\n",
      "Epoch 658/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 29.6635\n",
      "Epoch 659/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 29.4165\n",
      "Epoch 660/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 29.1512\n",
      "Epoch 661/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 28.8885\n",
      "Epoch 662/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 28.6561\n",
      "Epoch 663/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 28.3818\n",
      "Epoch 664/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 28.1175\n",
      "Epoch 665/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 27.8795\n",
      "Epoch 666/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 27.6221\n",
      "Epoch 667/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 27.3753\n",
      "Epoch 668/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 27.1434\n",
      "Epoch 669/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 26.8943\n",
      "Epoch 670/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 26.7046\n",
      "Epoch 671/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 26.4348\n",
      "Epoch 672/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 26.2048\n",
      "Epoch 673/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 25.9663\n",
      "Epoch 674/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 25.7207\n",
      "Epoch 675/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 25.5033\n",
      "Epoch 676/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 25.2526\n",
      "Epoch 677/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 25.0425\n",
      "Epoch 678/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 24.8135\n",
      "Epoch 679/2000\n",
      "730/730 [==============================] - 0s 49us/step - loss: 24.5798\n",
      "Epoch 680/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 24.3508\n",
      "Epoch 681/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 24.1324\n",
      "Epoch 682/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 23.9205\n",
      "Epoch 683/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 23.7085\n",
      "Epoch 684/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 23.5195\n",
      "Epoch 685/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 23.2814\n",
      "Epoch 686/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 23.0722\n",
      "Epoch 687/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 22.8650\n",
      "Epoch 688/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 22.6892\n",
      "Epoch 689/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 22.4499\n",
      "Epoch 690/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 22.2352\n",
      "Epoch 691/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 22.0449\n",
      "Epoch 692/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 21.8409\n",
      "Epoch 693/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 21.6691\n",
      "Epoch 694/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 21.4784\n",
      "Epoch 695/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 21.2450\n",
      "Epoch 696/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 21.0331\n",
      "Epoch 697/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 20.8808\n",
      "Epoch 698/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 20.6684\n",
      "Epoch 699/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 20.4759\n",
      "Epoch 700/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 20.2744\n",
      "Epoch 701/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 20.0878\n",
      "Epoch 702/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 19.9420\n",
      "Epoch 703/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 19.7188\n",
      "Epoch 704/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 19.5674\n",
      "Epoch 705/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 19.3972\n",
      "Epoch 706/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 19.1838\n",
      "Epoch 707/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 19.0022\n",
      "Epoch 708/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 18.8361\n",
      "Epoch 709/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 18.6431\n",
      "Epoch 710/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 18.5044\n",
      "Epoch 711/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 18.3168\n",
      "Epoch 712/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 18.1291\n",
      "Epoch 713/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 17.9693\n",
      "Epoch 714/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 17.7873\n",
      "Epoch 715/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 17.6343\n",
      "Epoch 716/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 17.4587\n",
      "Epoch 717/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 17.2990\n",
      "Epoch 718/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 17.1423\n",
      "Epoch 719/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 16.9838\n",
      "Epoch 720/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 18.26 - 0s 75us/step - loss: 16.8094\n",
      "Epoch 721/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 16.6831\n",
      "Epoch 722/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 16.5176\n",
      "Epoch 723/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 16.3465\n",
      "Epoch 724/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 16.2296\n",
      "Epoch 725/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 16.0454\n",
      "Epoch 726/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 15.9381\n",
      "Epoch 727/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 15.7681\n",
      "Epoch 728/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 15.6362\n",
      "Epoch 729/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 15.5021\n",
      "Epoch 730/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 15.3095\n",
      "Epoch 731/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 15.1627\n",
      "Epoch 732/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 15.0238\n",
      "Epoch 733/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 14.8833\n",
      "Epoch 734/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 14.7457\n",
      "Epoch 735/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 14.6513\n",
      "Epoch 736/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 14.4947\n",
      "Epoch 737/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 14.4469\n",
      "Epoch 738/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 14.2173\n",
      "Epoch 739/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 14.0672\n",
      "Epoch 740/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 13.9341\n",
      "Epoch 741/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 13.8110\n",
      "Epoch 742/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 13.6808\n",
      "Epoch 743/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 13.5453\n",
      "Epoch 744/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 13.4271\n",
      "Epoch 745/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 13.3012\n",
      "Epoch 746/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 91us/step - loss: 13.1878\n",
      "Epoch 747/2000\n",
      "730/730 [==============================] - 0s 76us/step - loss: 13.0514\n",
      "Epoch 748/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 12.9322\n",
      "Epoch 749/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 12.8400\n",
      "Epoch 750/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 12.7613\n",
      "Epoch 751/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 12.6045\n",
      "Epoch 752/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 12.4652\n",
      "Epoch 753/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 12.3521\n",
      "Epoch 754/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 12.2384\n",
      "Epoch 755/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 12.1390\n",
      "Epoch 756/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 12.0094\n",
      "Epoch 757/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 11.8798\n",
      "Epoch 758/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 11.7972\n",
      "Epoch 759/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 11.6757\n",
      "Epoch 760/2000\n",
      "730/730 [==============================] - 0s 48us/step - loss: 11.5587\n",
      "Epoch 761/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 11.4672\n",
      "Epoch 762/2000\n",
      "730/730 [==============================] - 0s 48us/step - loss: 11.3507\n",
      "Epoch 763/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 11.2707\n",
      "Epoch 764/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 11.1413\n",
      "Epoch 765/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 11.0880\n",
      "Epoch 766/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 10.9898\n",
      "Epoch 767/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 10.8627\n",
      "Epoch 768/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 10.7630\n",
      "Epoch 769/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 10.6443\n",
      "Epoch 770/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 10.5593\n",
      "Epoch 771/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 10.4620\n",
      "Epoch 772/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 10.3903\n",
      "Epoch 773/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 10.2777\n",
      "Epoch 774/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 10.1625\n",
      "Epoch 775/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 10.0824\n",
      "Epoch 776/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 10.0025\n",
      "Epoch 777/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 9.9080\n",
      "Epoch 778/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 9.8035\n",
      "Epoch 779/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 9.7206\n",
      "Epoch 780/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 9.6261\n",
      "Epoch 781/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 9.5251\n",
      "Epoch 782/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 9.4478\n",
      "Epoch 783/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 9.3730\n",
      "Epoch 784/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 9.2939\n",
      "Epoch 785/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 9.1842\n",
      "Epoch 786/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 9.1138\n",
      "Epoch 787/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 9.0387\n",
      "Epoch 788/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 8.9590\n",
      "Epoch 789/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 8.8723\n",
      "Epoch 790/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 8.7903\n",
      "Epoch 791/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 8.7156\n",
      "Epoch 792/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 8.6234\n",
      "Epoch 793/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 8.5501\n",
      "Epoch 794/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 8.4743\n",
      "Epoch 795/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 8.3977\n",
      "Epoch 796/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 8.3285\n",
      "Epoch 797/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 8.2611\n",
      "Epoch 798/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 8.1739\n",
      "Epoch 799/2000\n",
      "730/730 [==============================] - 0s 87us/step - loss: 8.1007\n",
      "Epoch 800/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 8.0355\n",
      "Epoch 801/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 7.9679\n",
      "Epoch 802/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 7.9350\n",
      "Epoch 803/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 7.8342\n",
      "Epoch 804/2000\n",
      "730/730 [==============================] - 0s 95us/step - loss: 7.7778\n",
      "Epoch 805/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 7.6906\n",
      "Epoch 806/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 7.6525\n",
      "Epoch 807/2000\n",
      "730/730 [==============================] - 0s 76us/step - loss: 7.5717\n",
      "Epoch 808/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 7.5131\n",
      "Epoch 809/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 7.4465\n",
      "Epoch 810/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 7.3583\n",
      "Epoch 811/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 7.3131\n",
      "Epoch 812/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 7.2599\n",
      "Epoch 813/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 7.1966\n",
      "Epoch 814/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 7.1466\n",
      "Epoch 815/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 7.0570\n",
      "Epoch 816/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 6.9908\n",
      "Epoch 817/2000\n",
      "730/730 [==============================] - 0s 89us/step - loss: 6.9273\n",
      "Epoch 818/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 6.8729\n",
      "Epoch 819/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 13.33 - 0s 74us/step - loss: 6.8347\n",
      "Epoch 820/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 6.7513\n",
      "Epoch 821/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 6.6863\n",
      "Epoch 822/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 6.6523\n",
      "Epoch 823/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 6.5717\n",
      "Epoch 824/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 6.5463\n",
      "Epoch 825/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 6.4643\n",
      "Epoch 826/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 6.4580\n",
      "Epoch 827/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 6.3573\n",
      "Epoch 828/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 6.3028\n",
      "Epoch 829/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 6.2628\n",
      "Epoch 830/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 6.1949\n",
      "Epoch 831/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 6.1273\n",
      "Epoch 832/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 6.1482\n",
      "Epoch 833/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 6.0530\n",
      "Epoch 834/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 5.9911\n",
      "Epoch 835/2000\n",
      "730/730 [==============================] - 0s 76us/step - loss: 5.9567\n",
      "Epoch 836/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 5.8966\n",
      "Epoch 837/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 5.8446\n",
      "Epoch 838/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 5.7830\n",
      "Epoch 839/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 5.7400\n",
      "Epoch 840/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 71us/step - loss: 5.7296\n",
      "Epoch 841/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 5.7057\n",
      "Epoch 842/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 5.6224\n",
      "Epoch 843/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 5.5826\n",
      "Epoch 844/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 5.5073\n",
      "Epoch 845/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 5.4753\n",
      "Epoch 846/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 5.4466\n",
      "Epoch 847/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 5.3870\n",
      "Epoch 848/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 5.3343\n",
      "Epoch 849/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 5.3093\n",
      "Epoch 850/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 5.2684\n",
      "Epoch 851/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 5.2089\n",
      "Epoch 852/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 5.1775\n",
      "Epoch 853/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 5.1369\n",
      "Epoch 854/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 5.0866\n",
      "Epoch 855/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 5.0574\n",
      "Epoch 856/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 5.0320\n",
      "Epoch 857/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 4.9766\n",
      "Epoch 858/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 4.9549\n",
      "Epoch 859/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 5.050 - 0s 81us/step - loss: 4.9391\n",
      "Epoch 860/2000\n",
      "730/730 [==============================] - 0s 100us/step - loss: 4.8567\n",
      "Epoch 861/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 4.8448\n",
      "Epoch 862/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 4.8061\n",
      "Epoch 863/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 4.7328\n",
      "Epoch 864/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 4.6945\n",
      "Epoch 865/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 4.6707\n",
      "Epoch 866/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 4.6422\n",
      "Epoch 867/2000\n",
      "730/730 [==============================] - 0s 93us/step - loss: 4.5841\n",
      "Epoch 868/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 4.5506\n",
      "Epoch 869/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 4.5094\n",
      "Epoch 870/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 4.4855\n",
      "Epoch 871/2000\n",
      "730/730 [==============================] - 0s 99us/step - loss: 4.4492\n",
      "Epoch 872/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 4.4199\n",
      "Epoch 873/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 4.3885\n",
      "Epoch 874/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 4.3416\n",
      "Epoch 875/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 4.2961\n",
      "Epoch 876/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 4.3104\n",
      "Epoch 877/2000\n",
      "730/730 [==============================] - 0s 88us/step - loss: 4.2609\n",
      "Epoch 878/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 4.2108\n",
      "Epoch 879/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 4.2113\n",
      "Epoch 880/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 4.1700\n",
      "Epoch 881/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 4.1113\n",
      "Epoch 882/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 4.0810\n",
      "Epoch 883/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 4.0531\n",
      "Epoch 884/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 4.0256\n",
      "Epoch 885/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 3.9927\n",
      "Epoch 886/2000\n",
      "730/730 [==============================] - 0s 99us/step - loss: 3.9880\n",
      "Epoch 887/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 3.9237\n",
      "Epoch 888/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 3.9049\n",
      "Epoch 889/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 3.8837\n",
      "Epoch 890/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 3.8468\n",
      "Epoch 891/2000\n",
      "730/730 [==============================] - 0s 88us/step - loss: 3.8511\n",
      "Epoch 892/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 3.7920\n",
      "Epoch 893/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 3.7799\n",
      "Epoch 894/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 3.7386\n",
      "Epoch 895/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 3.7013\n",
      "Epoch 896/2000\n",
      "730/730 [==============================] - 0s 95us/step - loss: 3.7081\n",
      "Epoch 897/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 3.6526\n",
      "Epoch 898/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 3.6459\n",
      "Epoch 899/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 3.6188\n",
      "Epoch 900/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 3.5891\n",
      "Epoch 901/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 3.5745\n",
      "Epoch 902/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 3.5237\n",
      "Epoch 903/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 3.4999\n",
      "Epoch 904/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 3.4896\n",
      "Epoch 905/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 3.4588\n",
      "Epoch 906/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 3.4403\n",
      "Epoch 907/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 3.3897\n",
      "Epoch 908/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 3.3767\n",
      "Epoch 909/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 3.3720\n",
      "Epoch 910/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 3.3542\n",
      "Epoch 911/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 3.3045\n",
      "Epoch 912/2000\n",
      "730/730 [==============================] - 0s 88us/step - loss: 3.3097\n",
      "Epoch 913/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 3.2619\n",
      "Epoch 914/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 3.2488\n",
      "Epoch 915/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 3.2207\n",
      "Epoch 916/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 3.2483\n",
      "Epoch 917/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 3.2035\n",
      "Epoch 918/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 3.1383\n",
      "Epoch 919/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 3.1547\n",
      "Epoch 920/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 3.1082\n",
      "Epoch 921/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 3.1229\n",
      "Epoch 922/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 3.1524\n",
      "Epoch 923/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 3.0476\n",
      "Epoch 924/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 3.0234\n",
      "Epoch 925/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 3.0065\n",
      "Epoch 926/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 3.0090\n",
      "Epoch 927/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.9740\n",
      "Epoch 928/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.9695\n",
      "Epoch 929/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 2.9508\n",
      "Epoch 930/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 2.9474\n",
      "Epoch 931/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 2.9063\n",
      "Epoch 932/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 2.8681\n",
      "Epoch 933/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 2.8967\n",
      "Epoch 934/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 2.8368\n",
      "Epoch 935/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 77us/step - loss: 2.8263\n",
      "Epoch 936/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.8115\n",
      "Epoch 937/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 2.7755\n",
      "Epoch 938/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 2.8670\n",
      "Epoch 939/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.7757\n",
      "Epoch 940/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.7427\n",
      "Epoch 941/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 2.7062\n",
      "Epoch 942/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.6942\n",
      "Epoch 943/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.6728\n",
      "Epoch 944/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 2.7276\n",
      "Epoch 945/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.6475\n",
      "Epoch 946/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 2.6339\n",
      "Epoch 947/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 2.6079\n",
      "Epoch 948/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.6129\n",
      "Epoch 949/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 2.6209\n",
      "Epoch 950/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 2.5582\n",
      "Epoch 951/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 2.5774\n",
      "Epoch 952/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 2.5457\n",
      "Epoch 953/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 2.5126\n",
      "Epoch 954/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 2.4858\n",
      "Epoch 955/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 2.4801\n",
      "Epoch 956/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 2.4632\n",
      "Epoch 957/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.4481\n",
      "Epoch 958/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.4402\n",
      "Epoch 959/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.4299\n",
      "Epoch 960/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.4267\n",
      "Epoch 961/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.3978\n",
      "Epoch 962/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 2.4066\n",
      "Epoch 963/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.3628\n",
      "Epoch 964/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 2.3525\n",
      "Epoch 965/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 2.3483\n",
      "Epoch 966/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 2.3389\n",
      "Epoch 967/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.3136\n",
      "Epoch 968/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 2.3309\n",
      "Epoch 969/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 2.3762\n",
      "Epoch 970/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.2910\n",
      "Epoch 971/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 2.2647\n",
      "Epoch 972/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 2.2640\n",
      "Epoch 973/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.2458\n",
      "Epoch 974/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 2.2631\n",
      "Epoch 975/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.2537\n",
      "Epoch 976/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.2818\n",
      "Epoch 977/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.2031\n",
      "Epoch 978/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 2.1872\n",
      "Epoch 979/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.1715\n",
      "Epoch 980/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.1977\n",
      "Epoch 981/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 2.1605\n",
      "Epoch 982/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.1299\n",
      "Epoch 983/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.1627\n",
      "Epoch 984/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.1247\n",
      "Epoch 985/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 2.1215\n",
      "Epoch 986/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.1266\n",
      "Epoch 987/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.0915\n",
      "Epoch 988/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.0826\n",
      "Epoch 989/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 2.0831\n",
      "Epoch 990/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.0688\n",
      "Epoch 991/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 2.0296\n",
      "Epoch 992/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 2.0430\n",
      "Epoch 993/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 2.0087\n",
      "Epoch 994/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 2.0443\n",
      "Epoch 995/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 2.0227\n",
      "Epoch 996/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 1.9880\n",
      "Epoch 997/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.9931\n",
      "Epoch 998/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 1.9702\n",
      "Epoch 999/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 1.9901\n",
      "Epoch 1000/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 1.9517\n",
      "Epoch 1001/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.9515\n",
      "Epoch 1002/2000\n",
      "730/730 [==============================] - 0s 43us/step - loss: 1.9300\n",
      "Epoch 1003/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.9148\n",
      "Epoch 1004/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 1.9119\n",
      "Epoch 1005/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.9215\n",
      "Epoch 1006/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.8986\n",
      "Epoch 1007/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.8819\n",
      "Epoch 1008/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.8783\n",
      "Epoch 1009/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.8730\n",
      "Epoch 1010/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.8629\n",
      "Epoch 1011/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.8850\n",
      "Epoch 1012/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.9055\n",
      "Epoch 1013/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.8378\n",
      "Epoch 1014/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.8354\n",
      "Epoch 1015/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 1.8308\n",
      "Epoch 1016/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.8197\n",
      "Epoch 1017/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.8071\n",
      "Epoch 1018/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 1.7856\n",
      "Epoch 1019/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.8083\n",
      "Epoch 1020/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.8059\n",
      "Epoch 1021/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.7916\n",
      "Epoch 1022/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.8012\n",
      "Epoch 1023/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.8234\n",
      "Epoch 1024/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 1.7625\n",
      "Epoch 1025/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.7356\n",
      "Epoch 1026/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.7425\n",
      "Epoch 1027/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.7923\n",
      "Epoch 1028/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.7965\n",
      "Epoch 1029/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.7145\n",
      "Epoch 1030/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 75us/step - loss: 1.7062\n",
      "Epoch 1031/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.6949\n",
      "Epoch 1032/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.7175\n",
      "Epoch 1033/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 1.7103\n",
      "Epoch 1034/2000\n",
      "730/730 [==============================] - 0s 62us/step - loss: 1.6953\n",
      "Epoch 1035/2000\n",
      "730/730 [==============================] - 0s 53us/step - loss: 1.7120\n",
      "Epoch 1036/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.6855\n",
      "Epoch 1037/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.7009\n",
      "Epoch 1038/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.6591\n",
      "Epoch 1039/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.6599\n",
      "Epoch 1040/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.6639\n",
      "Epoch 1041/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.6882\n",
      "Epoch 1042/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.6411\n",
      "Epoch 1043/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.6288\n",
      "Epoch 1044/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.6540\n",
      "Epoch 1045/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.6545\n",
      "Epoch 1046/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.6221\n",
      "Epoch 1047/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.6304\n",
      "Epoch 1048/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.5934\n",
      "Epoch 1049/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.6034\n",
      "Epoch 1050/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.6683\n",
      "Epoch 1051/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.6101\n",
      "Epoch 1052/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.5852\n",
      "Epoch 1053/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 1.6333\n",
      "Epoch 1054/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.5916\n",
      "Epoch 1055/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.5759\n",
      "Epoch 1056/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.5741\n",
      "Epoch 1057/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 1.5701\n",
      "Epoch 1058/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.5692\n",
      "Epoch 1059/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 1.5490\n",
      "Epoch 1060/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 1.5516\n",
      "Epoch 1061/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.5874\n",
      "Epoch 1062/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.5381\n",
      "Epoch 1063/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.5202\n",
      "Epoch 1064/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.5544\n",
      "Epoch 1065/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 1.5437\n",
      "Epoch 1066/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 1.5229\n",
      "Epoch 1067/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.5418\n",
      "Epoch 1068/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.5127\n",
      "Epoch 1069/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.5121\n",
      "Epoch 1070/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.5209\n",
      "Epoch 1071/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.4965\n",
      "Epoch 1072/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.5293\n",
      "Epoch 1073/2000\n",
      "730/730 [==============================] - 0s 59us/step - loss: 1.4812\n",
      "Epoch 1074/2000\n",
      "730/730 [==============================] - 0s 80us/step - loss: 1.5028\n",
      "Epoch 1075/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.4962\n",
      "Epoch 1076/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.4690\n",
      "Epoch 1077/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.4731\n",
      "Epoch 1078/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 1.4807\n",
      "Epoch 1079/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.4630\n",
      "Epoch 1080/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 1.4554\n",
      "Epoch 1081/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.4604\n",
      "Epoch 1082/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.4736\n",
      "Epoch 1083/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.4974\n",
      "Epoch 1084/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.5105\n",
      "Epoch 1085/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4547\n",
      "Epoch 1086/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4314\n",
      "Epoch 1087/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4450\n",
      "Epoch 1088/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4496\n",
      "Epoch 1089/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4661\n",
      "Epoch 1090/2000\n",
      "730/730 [==============================] - 0s 90us/step - loss: 1.4311\n",
      "Epoch 1091/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4165\n",
      "Epoch 1092/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 1.4965\n",
      "Epoch 1093/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 1.4406\n",
      "Epoch 1094/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.4305\n",
      "Epoch 1095/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.4662\n",
      "Epoch 1096/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.4345\n",
      "Epoch 1097/2000\n",
      "730/730 [==============================] - 0s 56us/step - loss: 1.4204\n",
      "Epoch 1098/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 1.4101\n",
      "Epoch 1099/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 1.4181\n",
      "Epoch 1100/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3785\n",
      "Epoch 1101/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4006\n",
      "Epoch 1102/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3950\n",
      "Epoch 1103/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3851\n",
      "Epoch 1104/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3789\n",
      "Epoch 1105/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3726\n",
      "Epoch 1106/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3730\n",
      "Epoch 1107/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3756\n",
      "Epoch 1108/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3675\n",
      "Epoch 1109/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3712\n",
      "Epoch 1110/2000\n",
      "730/730 [==============================] - 0s 51us/step - loss: 1.3489\n",
      "Epoch 1111/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.4104\n",
      "Epoch 1112/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3694\n",
      "Epoch 1113/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3646\n",
      "Epoch 1114/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3559\n",
      "Epoch 1115/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3353\n",
      "Epoch 1116/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3639\n",
      "Epoch 1117/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3973\n",
      "Epoch 1118/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3560\n",
      "Epoch 1119/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3539\n",
      "Epoch 1120/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3307\n",
      "Epoch 1121/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3741\n",
      "Epoch 1122/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3310\n",
      "Epoch 1123/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3395\n",
      "Epoch 1124/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 64us/step - loss: 1.3336\n",
      "Epoch 1125/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3538\n",
      "Epoch 1126/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3329\n",
      "Epoch 1127/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3190\n",
      "Epoch 1128/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3154\n",
      "Epoch 1129/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3144\n",
      "Epoch 1130/2000\n",
      "730/730 [==============================] - 0s 43us/step - loss: 1.3365\n",
      "Epoch 1131/2000\n",
      "730/730 [==============================] - 0s 43us/step - loss: 1.3218\n",
      "Epoch 1132/2000\n",
      "730/730 [==============================] - 0s 55us/step - loss: 1.3316\n",
      "Epoch 1133/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3016\n",
      "Epoch 1134/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.3270\n",
      "Epoch 1135/2000\n",
      "730/730 [==============================] - 0s 60us/step - loss: 1.2972\n",
      "Epoch 1136/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.3306\n",
      "Epoch 1137/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3158\n",
      "Epoch 1138/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 1.2999\n",
      "Epoch 1139/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.3001\n",
      "Epoch 1140/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.2999\n",
      "Epoch 1141/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.2933\n",
      "Epoch 1142/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.3189\n",
      "Epoch 1143/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.3373\n",
      "Epoch 1144/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.2892\n",
      "Epoch 1145/2000\n",
      "730/730 [==============================] - 0s 93us/step - loss: 1.3042\n",
      "Epoch 1146/2000\n",
      "730/730 [==============================] - 0s 51us/step - loss: 1.2852\n",
      "Epoch 1147/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.2726\n",
      "Epoch 1148/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.2815\n",
      "Epoch 1149/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.2741\n",
      "Epoch 1150/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 1.2742\n",
      "Epoch 1151/2000\n",
      "730/730 [==============================] - 0s 90us/step - loss: 1.2893\n",
      "Epoch 1152/2000\n",
      "730/730 [==============================] - 0s 92us/step - loss: 1.2752\n",
      "Epoch 1153/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.3141\n",
      "Epoch 1154/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 1.2949\n",
      "Epoch 1155/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2927\n",
      "Epoch 1156/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.2891\n",
      "Epoch 1157/2000\n",
      "730/730 [==============================] - 0s 89us/step - loss: 1.2565: 0s - loss: 1.230\n",
      "Epoch 1158/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 1.2830\n",
      "Epoch 1159/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 1.2702\n",
      "Epoch 1160/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 1.2623\n",
      "Epoch 1161/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 1.2416\n",
      "Epoch 1162/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2441\n",
      "Epoch 1163/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2791\n",
      "Epoch 1164/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.3346\n",
      "Epoch 1165/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.2549\n",
      "Epoch 1166/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.2571\n",
      "Epoch 1167/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 1.2593\n",
      "Epoch 1168/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 1.2717\n",
      "Epoch 1169/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.2603\n",
      "Epoch 1170/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 1.2603\n",
      "Epoch 1171/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 1.2487\n",
      "Epoch 1172/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2418\n",
      "Epoch 1173/2000\n",
      "730/730 [==============================] - 0s 58us/step - loss: 1.2360\n",
      "Epoch 1174/2000\n",
      "730/730 [==============================] - 0s 88us/step - loss: 1.2435\n",
      "Epoch 1175/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.2315\n",
      "Epoch 1176/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2548\n",
      "Epoch 1177/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2568\n",
      "Epoch 1178/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.2272\n",
      "Epoch 1179/2000\n",
      "730/730 [==============================] - 0s 96us/step - loss: 1.2512\n",
      "Epoch 1180/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 1.2298\n",
      "Epoch 1181/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 1.2290\n",
      "Epoch 1182/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 1.2595\n",
      "Epoch 1183/2000\n",
      "730/730 [==============================] - 0s 57us/step - loss: 1.2356\n",
      "Epoch 1184/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.2745\n",
      "Epoch 1185/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 1.3186\n",
      "Epoch 1186/2000\n",
      "730/730 [==============================] - 0s 48us/step - loss: 1.2496\n",
      "Epoch 1187/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.2564\n",
      "Epoch 1188/2000\n",
      "730/730 [==============================] - 0s 87us/step - loss: 1.2160\n",
      "Epoch 1189/2000\n",
      "730/730 [==============================] - 0s 99us/step - loss: 1.2998\n",
      "Epoch 1190/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.2563\n",
      "Epoch 1191/2000\n",
      "730/730 [==============================] - 0s 78us/step - loss: 1.2341\n",
      "Epoch 1192/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 1.2246\n",
      "Epoch 1193/2000\n",
      "730/730 [==============================] - 0s 89us/step - loss: 1.2350\n",
      "Epoch 1194/2000\n",
      "730/730 [==============================] - 0s 92us/step - loss: 1.2105\n",
      "Epoch 1195/2000\n",
      "730/730 [==============================] - 0s 90us/step - loss: 1.2321\n",
      "Epoch 1196/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 1.2044\n",
      "Epoch 1197/2000\n",
      "730/730 [==============================] - 0s 94us/step - loss: 1.2162\n",
      "Epoch 1198/2000\n",
      "730/730 [==============================] - 0s 89us/step - loss: 1.2243\n",
      "Epoch 1199/2000\n",
      "730/730 [==============================] - 0s 83us/step - loss: 1.2218\n",
      "Epoch 1200/2000\n",
      "730/730 [==============================] - 0s 92us/step - loss: 1.2375\n",
      "Epoch 1201/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 1.1993\n",
      "Epoch 1202/2000\n",
      "730/730 [==============================] - 0s 86us/step - loss: 1.2426\n",
      "Epoch 1203/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 1.2470\n",
      "Epoch 1204/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 1.2160\n",
      "Epoch 1205/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2056\n",
      "Epoch 1206/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2057\n",
      "Epoch 1207/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2149\n",
      "Epoch 1208/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2278\n",
      "Epoch 1209/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2032\n",
      "Epoch 1210/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1995\n",
      "Epoch 1211/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.1983\n",
      "Epoch 1212/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2107\n",
      "Epoch 1213/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.1935\n",
      "Epoch 1214/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.1963\n",
      "Epoch 1215/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2060\n",
      "Epoch 1216/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2403\n",
      "Epoch 1217/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1864\n",
      "Epoch 1218/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 71us/step - loss: 1.1893\n",
      "Epoch 1219/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1802\n",
      "Epoch 1220/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.1906\n",
      "Epoch 1221/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2080\n",
      "Epoch 1222/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2067\n",
      "Epoch 1223/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1879\n",
      "Epoch 1224/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1991\n",
      "Epoch 1225/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2142\n",
      "Epoch 1226/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1870\n",
      "Epoch 1227/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.2594\n",
      "Epoch 1228/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2275\n",
      "Epoch 1229/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.2164\n",
      "Epoch 1230/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1993\n",
      "Epoch 1231/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.1765\n",
      "Epoch 1232/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1901\n",
      "Epoch 1233/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.2029\n",
      "Epoch 1234/2000\n",
      "730/730 [==============================] - 0s 79us/step - loss: 1.1860\n",
      "Epoch 1235/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1999\n",
      "Epoch 1236/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1765\n",
      "Epoch 1237/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1831\n",
      "Epoch 1238/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1778\n",
      "Epoch 1239/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1789\n",
      "Epoch 1240/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1952\n",
      "Epoch 1241/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1699\n",
      "Epoch 1242/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1877\n",
      "Epoch 1243/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1718\n",
      "Epoch 1244/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1772\n",
      "Epoch 1245/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1618\n",
      "Epoch 1246/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1753\n",
      "Epoch 1247/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1796\n",
      "Epoch 1248/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2120\n",
      "Epoch 1249/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1753\n",
      "Epoch 1250/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1928\n",
      "Epoch 1251/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2039\n",
      "Epoch 1252/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1997\n",
      "Epoch 1253/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2353\n",
      "Epoch 1254/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.1798\n",
      "Epoch 1255/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1661\n",
      "Epoch 1256/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1703\n",
      "Epoch 1257/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1586\n",
      "Epoch 1258/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1563\n",
      "Epoch 1259/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1786\n",
      "Epoch 1260/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 1.1742\n",
      "Epoch 1261/2000\n",
      "730/730 [==============================] - ETA: 0s - loss: 1.551 - 0s 75us/step - loss: 1.1783\n",
      "Epoch 1262/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1776\n",
      "Epoch 1263/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.2069\n",
      "Epoch 1264/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1931\n",
      "Epoch 1265/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.2206\n",
      "Epoch 1266/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1844\n",
      "Epoch 1267/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1859\n",
      "Epoch 1268/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1794\n",
      "Epoch 1269/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1732\n",
      "Epoch 1270/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1541\n",
      "Epoch 1271/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1752\n",
      "Epoch 1272/2000\n",
      "730/730 [==============================] - 0s 82us/step - loss: 1.1807\n",
      "Epoch 1273/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1494\n",
      "Epoch 1274/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1518\n",
      "Epoch 1275/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1619\n",
      "Epoch 1276/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1535\n",
      "Epoch 1277/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 1.1524\n",
      "Epoch 1278/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1603\n",
      "Epoch 1279/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1420\n",
      "Epoch 1280/2000\n",
      "730/730 [==============================] - 0s 75us/step - loss: 1.1484\n",
      "Epoch 1281/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1486\n",
      "Epoch 1282/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1444\n",
      "Epoch 1283/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1548\n",
      "Epoch 1284/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1681\n",
      "Epoch 1285/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1826\n",
      "Epoch 1286/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.2385\n",
      "Epoch 1287/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1667\n",
      "Epoch 1288/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2285\n",
      "Epoch 1289/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1520\n",
      "Epoch 1290/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1575\n",
      "Epoch 1291/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.1488\n",
      "Epoch 1292/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1485\n",
      "Epoch 1293/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1412\n",
      "Epoch 1294/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.1817\n",
      "Epoch 1295/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1634\n",
      "Epoch 1296/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1477\n",
      "Epoch 1297/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1528\n",
      "Epoch 1298/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1397\n",
      "Epoch 1299/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 1.1567\n",
      "Epoch 1300/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.2104\n",
      "Epoch 1301/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1459\n",
      "Epoch 1302/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1505\n",
      "Epoch 1303/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1455\n",
      "Epoch 1304/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1729\n",
      "Epoch 1305/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1586\n",
      "Epoch 1306/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.1466\n",
      "Epoch 1307/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 1.1529\n",
      "Epoch 1308/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 1.1447\n",
      "Epoch 1309/2000\n",
      "730/730 [==============================] - 0s 52us/step - loss: 1.1673\n",
      "Epoch 1310/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 1.1467\n",
      "Epoch 1311/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1591\n",
      "Epoch 1312/2000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "730/730 [==============================] - 0s 70us/step - loss: 1.1549\n",
      "Epoch 1313/2000\n",
      "730/730 [==============================] - 0s 63us/step - loss: 1.1412\n",
      "Epoch 1314/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1712\n",
      "Epoch 1315/2000\n",
      "730/730 [==============================] - 0s 47us/step - loss: 1.1351\n",
      "Epoch 1316/2000\n",
      "730/730 [==============================] - 0s 84us/step - loss: 1.1574\n",
      "Epoch 1317/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1453\n",
      "Epoch 1318/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1390\n",
      "Epoch 1319/2000\n",
      "730/730 [==============================] - 0s 81us/step - loss: 1.1429\n",
      "Epoch 1320/2000\n",
      "730/730 [==============================] - 0s 72us/step - loss: 1.1596\n",
      "Epoch 1321/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1600\n",
      "Epoch 1322/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.1406\n",
      "Epoch 1323/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1655\n",
      "Epoch 1324/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1470\n",
      "Epoch 1325/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1495\n",
      "Epoch 1326/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1302\n",
      "Epoch 1327/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1544\n",
      "Epoch 1328/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.2082\n",
      "Epoch 1329/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1546\n",
      "Epoch 1330/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1612\n",
      "Epoch 1331/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1311\n",
      "Epoch 1332/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1346\n",
      "Epoch 1333/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1506\n",
      "Epoch 1334/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1377\n",
      "Epoch 1335/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.1379\n",
      "Epoch 1336/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1350\n",
      "Epoch 1337/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1533\n",
      "Epoch 1338/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1370\n",
      "Epoch 1339/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1261\n",
      "Epoch 1340/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1357\n",
      "Epoch 1341/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1330\n",
      "Epoch 1342/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1265\n",
      "Epoch 1343/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1363\n",
      "Epoch 1344/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1314\n",
      "Epoch 1345/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1385\n",
      "Epoch 1346/2000\n",
      "730/730 [==============================] - 0s 77us/step - loss: 1.1823\n",
      "Epoch 1347/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1288\n",
      "Epoch 1348/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1209\n",
      "Epoch 1349/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1575\n",
      "Epoch 1350/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1434\n",
      "Epoch 1351/2000\n",
      "730/730 [==============================] - 0s 73us/step - loss: 1.1356\n",
      "Epoch 1352/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1166\n",
      "Epoch 1353/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1185\n",
      "Epoch 1354/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1543\n",
      "Epoch 1355/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1329\n",
      "Epoch 1356/2000\n",
      "730/730 [==============================] - 0s 74us/step - loss: 1.1061\n",
      "Epoch 1357/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1597\n",
      "Epoch 1358/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1269\n",
      "Epoch 1359/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1209\n",
      "Epoch 1360/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1251\n",
      "Epoch 1361/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1223\n",
      "Epoch 1362/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1120\n",
      "Epoch 1363/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1205\n",
      "Epoch 1364/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1304\n",
      "Epoch 1365/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1745\n",
      "Epoch 1366/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1252\n",
      "Epoch 1367/2000\n",
      "730/730 [==============================] - 0s 65us/step - loss: 1.1566\n",
      "Epoch 1368/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1164\n",
      "Epoch 1369/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1365\n",
      "Epoch 1370/2000\n",
      "730/730 [==============================] - 0s 64us/step - loss: 1.1104\n",
      "Epoch 1371/2000\n",
      "730/730 [==============================] - 0s 69us/step - loss: 1.1297\n",
      "Epoch 1372/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1090\n",
      "Epoch 1373/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1530\n",
      "Epoch 1374/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1204\n",
      "Epoch 1375/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1270\n",
      "Epoch 1376/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1308\n",
      "Epoch 1377/2000\n",
      "730/730 [==============================] - 0s 85us/step - loss: 1.1158\n",
      "Epoch 1378/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1323\n",
      "Epoch 1379/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1370\n",
      "Epoch 1380/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1424\n",
      "Epoch 1381/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1704\n",
      "Epoch 1382/2000\n",
      "730/730 [==============================] - 0s 47us/step - loss: 1.1773\n",
      "Epoch 1383/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1373\n",
      "Epoch 1384/2000\n",
      "730/730 [==============================] - 0s 43us/step - loss: 1.1175\n",
      "Epoch 1385/2000\n",
      "730/730 [==============================] - 0s 67us/step - loss: 1.1425\n",
      "Epoch 1386/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1112\n",
      "Epoch 1387/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1542\n",
      "Epoch 1388/2000\n",
      "730/730 [==============================] - 0s 68us/step - loss: 1.1287\n",
      "Epoch 1389/2000\n",
      "730/730 [==============================] - 0s 66us/step - loss: 1.1570\n",
      "Epoch 1390/2000\n",
      "730/730 [==============================] - 0s 70us/step - loss: 1.1137\n",
      "Epoch 1391/2000\n",
      "730/730 [==============================] - 0s 71us/step - loss: 1.1882\n",
      "Epoch 1392/2000\n",
      " 32/730 [>.............................] - ETA: 0s - loss: 0.4584"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-31-df34ae7ca91f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m# Fitting the RNN to the Trainign set\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mregressor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m32\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mepochs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m2000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\keras\\engine\\training.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)\u001b[0m\n\u001b[0;32m   1237\u001b[0m                                         \u001b[0msteps_per_epoch\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msteps_per_epoch\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1238\u001b[0m                                         \u001b[0mvalidation_steps\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mvalidation_steps\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1239\u001b[1;33m                                         validation_freq=validation_freq)\n\u001b[0m\u001b[0;32m   1240\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1241\u001b[0m     def evaluate(self,\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\keras\\engine\\training_arrays.py\u001b[0m in \u001b[0;36mfit_loop\u001b[1;34m(model, fit_function, fit_inputs, out_labels, batch_size, epochs, verbose, callbacks, val_function, val_inputs, shuffle, initial_epoch, steps_per_epoch, validation_steps, validation_freq)\u001b[0m\n\u001b[0;32m    194\u001b[0m                     \u001b[0mins_batch\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtoarray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    195\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 196\u001b[1;33m                 \u001b[0mouts\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfit_function\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    197\u001b[0m                 \u001b[0mouts\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mto_list\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mouts\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    198\u001b[0m                 \u001b[1;32mfor\u001b[0m \u001b[0ml\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mo\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mout_labels\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mouts\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\tensorflow_core\\python\\keras\\backend.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, inputs)\u001b[0m\n\u001b[0;32m   3738\u001b[0m         \u001b[0mvalue\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmath_ops\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcast\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtensor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3739\u001b[0m       \u001b[0mconverted_inputs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3740\u001b[1;33m     \u001b[0moutputs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_graph_fn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mconverted_inputs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   3741\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3742\u001b[0m     \u001b[1;31m# EagerTensor.numpy() will often make a copy to ensure memory safety.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\tensorflow_core\\python\\eager\\function.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m   1079\u001b[0m       \u001b[0mTypeError\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mFor\u001b[0m \u001b[0minvalid\u001b[0m \u001b[0mpositional\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mkeyword\u001b[0m \u001b[0margument\u001b[0m \u001b[0mcombinations\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1080\u001b[0m     \"\"\"\n\u001b[1;32m-> 1081\u001b[1;33m     \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1082\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1083\u001b[0m   \u001b[1;32mdef\u001b[0m \u001b[0m_call_impl\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcancellation_manager\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\tensorflow_core\\python\\eager\\function.py\u001b[0m in \u001b[0;36m_call_impl\u001b[1;34m(self, args, kwargs, cancellation_manager)\u001b[0m\n\u001b[0;32m   1119\u001b[0m       raise TypeError(\"Keyword arguments {} unknown. Expected {}.\".format(\n\u001b[0;32m   1120\u001b[0m           list(kwargs.keys()), list(self._arg_keywords)))\n\u001b[1;32m-> 1121\u001b[1;33m     \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_call_flat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcaptured_inputs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcancellation_manager\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1122\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1123\u001b[0m   \u001b[1;32mdef\u001b[0m \u001b[0m_filtered_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\tensorflow_core\\python\\eager\\function.py\u001b[0m in \u001b[0;36m_call_flat\u001b[1;34m(self, args, captured_inputs, cancellation_manager)\u001b[0m\n\u001b[0;32m   1222\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mexecuting_eagerly\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1223\u001b[0m       flat_outputs = forward_function.call(\n\u001b[1;32m-> 1224\u001b[1;33m           ctx, args, cancellation_manager=cancellation_manager)\n\u001b[0m\u001b[0;32m   1225\u001b[0m     \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1226\u001b[0m       \u001b[0mgradient_name\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_delayed_rewrite_functions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mregister\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\tensorflow_core\\python\\eager\\function.py\u001b[0m in \u001b[0;36mcall\u001b[1;34m(self, ctx, args, cancellation_manager)\u001b[0m\n\u001b[0;32m    509\u001b[0m               \u001b[0minputs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    510\u001b[0m               \u001b[0mattrs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"executor_type\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexecutor_type\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"config_proto\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 511\u001b[1;33m               ctx=ctx)\n\u001b[0m\u001b[0;32m    512\u001b[0m         \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    513\u001b[0m           outputs = execute.execute_with_cancellation(\n",
      "\u001b[1;32m~\\Anaconda3\\envs\\env_ttest\\lib\\site-packages\\tensorflow_core\\python\\eager\\execute.py\u001b[0m in \u001b[0;36mquick_execute\u001b[1;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[0;32m     59\u001b[0m     tensors = pywrap_tensorflow.TFE_Py_Execute(ctx._handle, device_name,\n\u001b[0;32m     60\u001b[0m                                                \u001b[0mop_name\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 61\u001b[1;33m                                                num_outputs)\n\u001b[0m\u001b[0;32m     62\u001b[0m   \u001b[1;32mexcept\u001b[0m \u001b[0mcore\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_NotOkStatusException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     63\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mname\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "# Fitting the RNN to the Trainign set\n",
    "regressor.fit(X_train, y_train, batch_size = 32, epochs = 2000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(730, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Part 3 - Making the predictions and visualising the results based on the training data\n",
    "\n",
    "# Get the real stock price 2016 - 2018\n",
    "# Importing the training set\n",
    "real_stock_price = pd.read_csv(\"zgpa_train.csv\")\n",
    "real_stock_price_train = real_stock_price.iloc[:,1:2].values\n",
    "# Getting the predicted stock price of 2016 - 2018\n",
    "predicted_stock_price_train = regressor.predict(X_train)\n",
    "print(predicted_stock_price_train.shape)\n",
    "# predicted_stock_price_train = sc.inverse_transform(predicted_stock_price_train)\n",
    "# visualising the results\n",
    "plt.plot(real_stock_price_train[1:m], color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_price_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# visualising the results\n",
    "plt.plot(real_stock_price_train[1:731], color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_price_train+10, color = 'blue', label = 'Predicted Stock Price+10')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = np.concatenate((real_stock_price_train[1:1258],predicted_stock_price_train),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>real_price</th>\n",
       "      <th>predicted_price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>28.41</td>\n",
       "      <td>30.494053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>29.03</td>\n",
       "      <td>28.256599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28.73</td>\n",
       "      <td>28.877617</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>28.73</td>\n",
       "      <td>28.574709</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>27.73</td>\n",
       "      <td>28.574709</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   real_price  predicted_price\n",
       "0       28.41        30.494053\n",
       "1       29.03        28.256599\n",
       "2       28.73        28.877617\n",
       "3       28.73        28.574709\n",
       "4       27.73        28.574709"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = pd.DataFrame(result,columns=['real_price','predicted_price'])\n",
    "result.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "result.to_csv('result.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-01-02</td>\n",
       "      <td>54.19</td>\n",
       "      <td>54.33</td>\n",
       "      <td>53.09</td>\n",
       "      <td>53.33</td>\n",
       "      <td>82554240</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-01-03</td>\n",
       "      <td>53.30</td>\n",
       "      <td>54.48</td>\n",
       "      <td>53.21</td>\n",
       "      <td>53.83</td>\n",
       "      <td>69271120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-01-04</td>\n",
       "      <td>53.43</td>\n",
       "      <td>55.15</td>\n",
       "      <td>53.38</td>\n",
       "      <td>54.74</td>\n",
       "      <td>112985584</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-01-07</td>\n",
       "      <td>55.24</td>\n",
       "      <td>55.32</td>\n",
       "      <td>54.05</td>\n",
       "      <td>54.45</td>\n",
       "      <td>76593008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-01-08</td>\n",
       "      <td>54.20</td>\n",
       "      <td>54.24</td>\n",
       "      <td>53.35</td>\n",
       "      <td>53.95</td>\n",
       "      <td>55992092</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date   open   high    low  close     volume\n",
       "0  2019-01-02  54.19  54.33  53.09  53.33   82554240\n",
       "1  2019-01-03  53.30  54.48  53.21  53.83   69271120\n",
       "2  2019-01-04  53.43  55.15  53.38  54.74  112985584\n",
       "3  2019-01-07  55.24  55.32  54.05  54.45   76593008\n",
       "4  2019-01-08  54.20  54.24  53.35  53.95   55992092"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Part 4 - Making the predictions and visualising the results based on the test data\n",
    "%matplotlib inline\n",
    "# Getting the real stock price of 201\n",
    "test_set = pd.read_csv(\"zgpa_test.csv\")\n",
    "test_set.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(182, 1)\n"
     ]
    }
   ],
   "source": [
    "real_stock_price = test_set.loc[:,['open']].values\n",
    "print(real_stock_price.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Getting the predicted stock price of 2019\n",
    "m_test = real_stock_price.shape[0]\n",
    "X_test_ori = real_stock_price[0:m_test-1]\n",
    "y_test_ori = real_stock_price[1:m]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(181, 1) (181, 1)\n"
     ]
    }
   ],
   "source": [
    "print(X_test_ori.shape,y_test_ori.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# X_test = sc.transform(X_test_ori)\n",
    "X_test = np.reshape(X_test_ori, (m_test-1, 1, 1))\n",
    "predicted_stock_price = regressor.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# predicted_stock_price = sc.inverse_transform(predicted_stock_price)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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S7i/F4fDyNPC73A4HLmauDj49ttgW3EGTvjPgQIFChAREUGTJk3o0aMHBw4cOPtO6VCzZk327NlzxvJRo0bRtGlTmjVrRpMmTfj5558BGD16NDt27MjWuUaPHs2DD6ZVazvlNhUqVCAiIoJGjRrx6aefprlddHQ0Dz/8cLbscDjyPZ98ArfcAuvWBduSFDjhPweKFi1KTEwMK1asoGzZsnzwwQd+Pf727dt5/fXXmT17NsuXL2f+/Pk0a9YMODfhzyx9+/YlJiaGqKgonn32WXbv3p1ifUJCApGRkQwfnlZND4fDwZo1Np81K7h2pMIJv59o27Yt//yTXJ50yJAhtGrVimbNmvHSS8mV8q677jpatmxJ48aNGTlyZIbHjI2NpUSJEhQvbqVXixcvTq1atfjhhx+Ijo7m1ltvJSIiguPHjzNt2jSaN29O06ZNueOOOzh58iQAixYt4pJLLiE8PJzWrVtz+PDhFOf47bffaNu2bZpvG14qVqxInTp12LJlC4MHD+buu++ma9eu9OvXj6ioKK655hoAjhw5wsCBA0+/ofz4448ATJ48mbZt29KiRQv69OnDkSNHsnBnHY48zN9/2zyXCX+eDedMwaOPQkyMf48ZEQHvvpupTRMTE5k2bRr/+te/ABO6devWsXDhQlSVnj178ueff9K+fXtGjRpF2bJlOX78OK1ateKGG26gXLlyaR43PDycSpUqUatWLTp37sz1119Pjx496N27NyNGjGDo0KFERkZy4sQJBgwYwLRp06hXrx79+vXjo48+4v7776dv376MHTuWVq1acejQIYoWLXr6+OPHj2fYsGFMnDiRMmXKpHt9GzduZOPGjVx00UUALF68mNmzZ1O0aFGioqJOb/fqq69SqlQp/vrrLwD279/Pnj17eO2115g6dSrFihXjzTffZNiwYbz44ouZurcOR55FFdautc9O+PMPx48fJyIigs2bN9OyZUu6dOkCmPBPnjyZ5s2bA9YSXrduHe3bt2f48OGMHz8egG3btrFu3bp0hb9AgQJMmjSJRYsWMW3aNAYNGsTixYsZPHhwiu3Wrl1LrVq1qFevHgD9+/fngw8+oHPnzlSpUoVWrVoBULJkydP7zJgxg+joaCZPnpxiuS9jx45l9uzZFClShE8++YSyZa38bc+ePVM8QLxMnTqV77777vT3MmXK8Ouvv7Jq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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the results\n",
    "plt.plot(y_test_ori, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_price, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 5 - Evaluating the RNN\n",
    "# Evaluate of the RNN - learning to evaluate regression models\n",
    "# Root Mean Square Error (RMSE)\n",
    "\n",
    "import math\n",
    "from sklearn.metrics import mean_squared_error\n",
    "rmse = math.sqrt(mean_squared_error(y_test_ori, predicted_stock_price))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.495186351667051"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rmse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.models import load_model\n",
    "regressor.save('rnn_zgpa_stock_predict.h5')  # creates a HDF5 file 'my_model.h5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = np.concatenate((y_test_ori,predicted_stock_price),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = pd.DataFrame(result,columns=['real_price','predicted_price'])\n",
    "result.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "result.to_csv('zgpa_predicted_2.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 股价预测对比\n",
    "\n",
    "![result_comp](images/result_comp.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**预测准确率的局限性:** 无法真实反映模型针对各个分类的预测准确度\n",
    "\n",
    "任务：计算并对比预测模型预测准确率、空准确率\n",
    "\n",
    "空准确率：当模型总是预测比例较高的类别，其预测准确率的数值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**结论:**\n",
    "\n",
    "  分类准确率可以方便的用于衡量模型的整体预测效果，但无法反应细节信息，具体表现在：\n",
    "- 没有体现数据的**实际分布情况**\n",
    "- 没有体现模型**错误预测的类型**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵\n",
    "\n",
    "又称为误差矩阵，用于衡量分类算法的准确程度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![confusion_matrix](images/06_confusion_matrix.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**名词解释**\n",
    "\n",
    "- **True Positives (TP):** 预测准确、实际为正样本的数量（实际为1，预测为1）\n",
    "- **True Negatives (TN):** 预测准确、实际为负样本的数量（实际为0，预测为0）\n",
    "- **False Positives (FP):** 预测错误、实际为负样本的数量（实际为0，预测为1）\n",
    "- **False Negatives (FN):** 预测错误、实际为正样本的数量（实际为1，预测为0）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Small confusion matrix](images/09_confusion_matrix_1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Large confusion matrix](images/09_confusion_matrix_2.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵指标"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**准确率:** 整体样本中，预测正确样本数的比例\n",
    "- Accuracy = (TP + TN)/(TP + TN + FP + FN)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**精确率:** 预测结果为正的样本中，预测正确的比例\n",
    "- Precision = TP/(TP + FP)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**F1分数:** 综合Precision和Recall的一个判断指标\n",
    "- F1 Score = 2*Precision X Recall/(Precision + Recall)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![confusion matrix_metrics](images/09_confusion_matrix_3.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**结论:**\n",
    "\n",
    "- 分类任务中，相比单一的预测准确率，混淆矩阵提供了**更全面的模型评估信息**\n",
    "- 通过混淆矩阵，我们可以计算出**多样的模型表现衡量指标**，从而更好地选择模型\n",
    "\n",
    "**哪个衡量指标更关键?**\n",
    "\n",
    "- 衡量指标的选择取决于**应用场景**\n",
    "- **垃圾邮件检测** (正样本为 \"垃圾邮件\"): 希望普通邮件（负样本）不要被判断为垃圾邮件（正样本），需要关注**精确率**，希望判断为垃圾邮件的样本都是判断正确的；还需要关注**召回率**，希望所有的垃圾邮件尽可能被判断出来)\n",
    "- **异常交易检测** (正样本为 \"异常交易\"): 希望所有的异常交易都被检测到，即判断为正常的交易中尽可能不存在异常交易，需要关注**特异度**"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
